Tác giả: Jake @ Antalpha Ventures, Blake @ Akedo Games, Jawker @ Cipherwave Capital
Lời nói đầu
Bởi vì các công ty R&D khác nhau áp dụng các cơ cấu khác nhau (áp dụng dự án + cơ cấu tổ chức cấp trung), nên họ có sự tập trung khác nhau vào các dự án và tổ chức cấp trung. Một số là các dự án mạnh và các tổ chức cấp trung. dự án Có một số nền tảng trung gian mạnh mẽ và các dự án yếu kém. Vì vậy, loạt bài này chủ yếu phân tích các chức năng và quy trình liên quan đến phát triển trò chơi. Trên cơ sở đó, bài viết thứ hai trong loạt bài này chủ yếu phân tích quá trình sản xuất công nghiệp và sản xuất (nghệ thuật và công nghệ) của Web3 Gaming. Sau khi dự án trò chơi được phê duyệt, những người lập kế hoạch trò chơi đã xác định các chi tiết như lối chơi cốt lõi và khả năng chơi, bao gồm sự phát triển của nhân vật, hướng dẫn hành vi của người chơi, bản đồ và cốt truyện, v.v. Do đó, việc lập kế hoạch trò chơi cần phải giao tiếp với nghệ thuật và công nghệ để thúc đẩy quá trình phát triển trò chơi Web3 đến giai đoạn thiết kế và phát triển.
Sản xuất và sản xuất công nghiệp : Tổng quan về phần kỹ thuật
Khi các yêu cầu lập kế hoạch rõ ràng, công nghệ front-end và back-end của trò chơi cũng như các nhóm chương trình kỹ thuật khác cần triển khai trò chơi thiết kế do bộ phận kế hoạch đề xuất và viết Code game để đảm bảo việc triển khai kỹ thuật của game. Trong quá trình thực hiện cụ thể, nó có thể được chia thành các chương trình front-end và chương trình back-end. Quy trình chính cần quản lý toàn bộ quy trình công nghệ, bao gồm nhưng không giới hạn ở việc xác định kế hoạch thực hiện kỹ thuật chính, tối ưu hóa các hiệu suất khác nhau và hướng dẫn xây dựng khung cơ bản.
Chương trình giao diện người dùng: hiển thị lớp phủ, tối ưu hóa và liên quan đến logic, v.v., bao gồm cả âm thanh tập tin, tập tin hình ảnh và xử lý tập tin văn bản.
Chương trình back-end: bao gồm phía máy chủ, bao gồm nhưng không giới hạn ở cấu trúc cơ sở dữ liệu, truyền dữ liệu, xác minh, lưu trữ và liên lạc v.v.
Hình bên dưới thể hiện cách hiển thị của Web3 Gaming trong từng phần của chương trình front-end và ngược lại -kết thúc chương trình. Hai phần sẽ được phân tích chi tiết sau.
Sản xuất và sản xuất công nghiệp: front-end kỹ thuật
< p style ="text-align: left;">Phát triển chương trình giao diện người dùng trò chơi tập trung vào giao diện trò chơi, tính tương tác và trải nghiệm người dùng. Về tính tương tác và trải nghiệm người dùng, cần tập trung vào tính tương tác và trải nghiệm người dùng của trò chơi, bao gồm việc thiết kế và triển khai giao diện trò chơi (UI), phát triển hệ thống tương tác người dùng (UI) và tạo hoạt hình và hiệu ứng hình ảnh. Ngoài ra, các kỹ sư front-end đảm bảo rằng trò chơi có trải nghiệm người dùng nhất quán trên các nền tảng khác nhau, bao gồm cả máy tính để bàn và thiết bị di động. Về việc triển khai logic trò chơi, nhà phát triển cần chú ý đến hành vi của các nhân vật trong trò chơi, việc thực hiện luật chơi, quản lý điểm số và tiến trình cũng như cơ chế phản hồi sự kiện trong trò chơi. Các nhà phát triển cần viết mã hiệu quả, liền mạch để đảm bảo lối chơi mượt mà, công bằng và đầy thử thách.
Do đó, dựa trên mục tiêu trên, các nhà phát triển front-end cần sử dụng các ngôn ngữ lập trình phù hợp (chẳng hạn như C#, < code>C++ v.v.), sử dụng các công cụ trò chơi (chẳng hạn như Unreal, Unity, Source và CryEngine, v.v.) để tạo giao diện trò chơi, điều chỉnh hiệu ứng triển khai hoạt ảnh và hiệu ứng biểu đạt hiệu ứng âm thanh, v.v. Có rất nhiều công cụ công cụ trò chơi trên thị trường để nhà phát triển sử dụng và công cụ công cụ trò chơi cụ thể cần được lựa chọn dựa trên nhu cầu cụ thể của nhà phát triển. Sau đây là các sở thích và nhu cầu phát triển công nghệ trò chơi để lựa chọn công cụ trò chơi:
Yêu cầu dự án: Các loại trò chơi khác nhau có yêu cầu lựa chọn công cụ khác nhau. Ví dụ: đối với các trò chơi AAA nhấn mạnh vào hiệu ứng hình ảnh, Unreal Engine hoặc CryEngine có thể phù hợp hơn; trong khi đối với các trò chơi nhỏ hơn nhắm mục tiêu đến nền tảng di động, Unity có thể là lựa chọn tốt hơn.
Đường cong học tập và hỗ trợ cộng đồng: Một công cụ dễ làm chủ và sử dụng có thể giảm đáng kể khó khăn trong quá trình phát triển. Ngoài ra, một cộng đồng tích cực có thể cung cấp nhiều tài nguyên và hỗ trợ, cho phép các nhà phát triển nhanh chóng tìm ra giải pháp khi họ gặp phải vấn đề.
Hiệu suất và tối ưu hóa: Hiệu suất và khả năng tối ưu hóa của công cụ rất quan trọng đối với hiệu quả vận hành của trò chơi.
Chi phí và cấp phép: Một số công cụ có thể yêu cầu thanh toán hoặc có các yêu cầu cấp phép cụ thể. Các nhà phát triển cần phải đánh đổi dựa trên ngân sách và nhu cầu của dự án.
Khả năng mở rộng và tùy chỉnh: Khi ngành trò chơi tiếp tục phát triển, công cụ trò chơi phải có khả năng thích ứng với các xu hướng và nhu cầu công nghệ mới. Hiểu được khả năng mở rộng và tùy chỉnh của công cụ có thể giúp các nhà phát triển chuẩn bị tốt hơn cho những thay đổi trong tương lai.
Dựa trên phân tích nhu cầu trên, sau đây là giới thiệu và phân tích ngắn gọn về hai game engine tiêu biểu là Unity và Unreal Engine .
Unity là một công cụ phát triển trò chơi hỗ trợ nhiều nền tảng phổ thông như Windows, Mac, iOS , Android, v.v. Unity có khả năng tùy chỉnh cao, cho phép các nhà phát triển viết tập lệnh bằng C# hoặc JavaScript. Hơn nữa, Unity còn cung cấp một kho tài nguyên phong phú nơi các nhà phát triển có thể mua và tải xuống nhiều plug-in, mô hình và hiệu ứng âm thanh khác nhau. Ưu điểm chính của Unity bao gồm cộng đồng năng động, khả năng tương thích đa nền tảng tuyệt vời, môi trường phát triển tương đối dễ sử dụng và số lượng lớn các gói của bên thứ ba. Các nhà phát triển có thể tạo các gói tính năng của riêng mình và đưa chúng lên cửa hàng chính thức của Unity để bán. Hiện có hơn 1,5 triệu nhà phát triển duyệt qua cửa hàng mỗi tháng với hơn 56.000 gói có sẵn. Từ góc độ thương mại hóa và kiếm tiền, Unity sẽ đa dạng hơn. Các con đường và kênh thương mại hóa bao gồm SDK kiếm tiền, dịch vụ trò chơi trực tuyến một cửa Unity Game Cloud, dịch vụ thoại trò chơi Vivox, dịch vụ lưu trữ máy chủ Multiplay ở nước ngoài và nền tảng phân phối nội dung Unity (UDP). ), Xây dựng đám mây thống nhất và các dịch vụ đa dạng khác. Trong số đó, SDK kiếm tiền có sẵn cho các nhà phát triển truy cập và Unity trực tiếp đóng vai trò là cổng phân phối quảng cáo để phân phối quảng cáo. Hiện tại, dịch vụ này đã thay thế cấp phép thương mại động cơ và trở thành nguồn thu nhập chính của Unity. Các trò chơi nổi tiếng toàn cầu như trò chơi di động "Escape from Tarkov", "Temtem", "Call of Duty" và "Hearthstone" đã chứng minh rằng Unity là một trong những công cụ trò chơi tốt nhất trên thị trường. Tuy nhiên, khả năng tối ưu hóa hiệu suất của Unity tương đối kém và khả năng xử lý của nó đối với các cảnh có quy mô lớn và các mô hình có độ chính xác cao còn hạn chế. Trải nghiệm UI của Unity kém hơn Unreal nên nhà phát triển phải bổ sung thêm nhiều gói của bên thứ ba để cải thiện chức năng của engine. Và về mặt lập trình, Unity sử dụng C# và JavaScript, điều này dẫn đến một số vấn đề về khả năng thích ứng trong quá trình phát triển Unity. Vào tháng 3 năm 2020, Unity đã chính thức ra mắt phiên bản 2019.3 mới nhất, bao gồm hai chức năng là HDRP (Đường ống kết xuất độ nét cao) và Đường ống kết xuất phổ quát URP (Đường ống kết xuất phổ quát nâng cao khả năng tối ưu hóa và hiệu ứng hình ảnh). Đồng thời, trình chỉnh sửa chế độ xem hiệu ứng đặc biệt, hệ thống theo dõi sợi thời gian thực, v.v. đã được thêm vào, giúp nó phù hợp hơn với nhu cầu thị trường hiện tại và được áp dụng trong sản xuất trò chơi quy mô lớn.
Unreal Engine là một công cụ trò chơi hiệu suất cao, mã nguồn mở hoàn toàn được biết đến với công cụ vật lý và đồ họa tuyệt vời. Nó hỗ trợ lập trình trực quan C++ và Blueprint, đồng thời cung cấp trình chỉnh sửa vật liệu và hệ thống ánh sáng mạnh mẽ để đạt được đồ họa trò chơi chân thực. Đối với các nhà phát triển, Unreal không chỉ miễn phí sử dụng mà còn cho phép họ nghiên cứu mã để nâng cao hơn nữa hiệu quả phát triển. Hơn nữa, Unreal engine đi kèm với bản thiết kế riêng, vì vậy ngay cả khi bạn không phải là nhà phát triển kỹ thuật, bạn vẫn có thể hoàn thành thiết kế trò chơi thông qua giao diện trực quan điểm-điểm. Ngoài ra, Unreal Engine còn có tính năng tương thích đa nền tảng và hệ thống giao diện người dùng có khả năng tùy biến cao. Về tính phí, Unreal áp dụng mô hình kinh doanh động cơ truyền thống. Mô hình tính phí đầu tiên tính phí hoa hồng cố định 5% trên phần tổng doanh thu của trò chơi vượt quá 1 triệu đô la Mỹ; mô hình tính phí còn lại là thu 12% doanh thu từ việc bán tài liệu chính thức hoặc tài liệu của bên thứ ba trong trung tâm mua sắm. . Xét về sản lượng game và mức độ phổ biến, các game nổi tiếng thế giới như “Borderlands”, “Batman: Arkham Asylum” và “Final Fantasy 7 Remake” đều sử dụng Unreal engine. Tuy nhiên, Unreal Engine có một lộ trình học tập khó khăn để bắt đầu nhưng không dễ để thành thạo. Phải mất một khoảng thời gian và kinh nghiệm nhất định để thành thạo nó.
Theo phân tích dữ liệu của Medium và Jinghe, thị phần toàn cầu của Unity đạt 49,5% vào năm 2021 và thị phần toàn cầu của Unreal là 9,7 %, cả hai hình thành một mô hình cạnh tranh độc quyền. Một báo cáo nghiên cứu thị trường khác cho thấy vào năm 2023, Unity và Unreal Engine sẽ có thị phần lần lượt là 48% và 13%. Bảng sau đây hiển thị phân tích so sánh về đồ họa, tính năng, mã và hiệu suất giữa hai loại.
Về mặt hiệu ứng hình ảnh và hình ảnh, những hiệu ứng mà Unreal Engine có thể đạt được sẽ Tốt hơn Unity một chút, nhưng sự khác biệt là rất nhỏ. Từ góc độ bắt đầu, Unity dễ dàng hơn cho người mới bắt đầu và C# mà Unity yêu cầu thường có thể đạt được tốc độ biên dịch nhanh hơn và thời gian lặp lại ngắn hơn trong khi Unreal Engine xử lý hoạt ảnh và đồ họa tốt; ., điều này khó hơn đối với người mới bắt đầu. Trong quá trình sử dụng thực tế, những hiệu quả có thể đạt được và đạt được trong Unreal Engine cũng có thể đạt được thông qua Unity. Cả hai phần mềm đều có thể đạt được hiệu suất đồ họa tốt hơn và hiệu quả hơn bằng cách gọi API hoặc công cụ. Theo thống kê, trong hoạt động thực tế, các kỹ sư mã thích Unity hơn, trong khi các nghệ sĩ kỹ thuật có yêu cầu cao hơn về đồ họa và biểu cảm lại thích Unreal Engine.
Tương tự, đối với các nhà phát triển công nghệ front-end, ngoài Unity và Unreal, còn có các game engine khác để lựa chọn. Sau đây là một số game engine thường được sử dụng để các kỹ thuật viên front-end tham khảo:< /p>
CryEngine nổi tiếng với đồ họa chất lượng cao và mạnh mẽ động cơ vật lý. Nó cung cấp ánh sáng toàn cầu theo thời gian thực cũng như các mô hình và vật liệu chất lượng cao, mang đến cho các nhà phát triển khả năng tạo ra các trò chơi trong thế giới thực. Tuy nhiên, CryEngine có tương đối ít tài liệu và tài nguyên cộng đồng và có thể khó học đối với người mới.
GameMaker Studio 2 là một công cụ phát triển trò chơi có thể được sử dụng để tạo trò chơi 2D hoặc 3D. Có nhiều công cụ và trình chỉnh sửa có sẵn để giúp các nhà phát triển hiện thực hóa ý tưởng trò chơi của họ và chuyển dự án cuối cùng sang nhiều nền tảng từ cùng một tài nguyên cơ sở ban đầu. GameMaker Studio 2 cung cấp biểu tượng giao diện hành động kéo và thả (DnD™) trực quan và dễ sử dụng, cho phép bạn tạo trò chơi bằng logic mã ảo. Bạn cũng có thể tạo trò chơi bằng ngôn ngữ kịch bản GML hoặc thậm chí kết hợp cả hai bằng cách sử dụng các hành động DnD™ để gọi các hàm.
Godot Engine là một công cụ trò chơi mã nguồn mở 2D và 3D đa nền tảng, đa nền tảng, hỗ trợ có thể Chạy trên Windows, macOS, Linux và các hệ điều hành khác. Các trò chơi do nó tạo ra có thể chạy trên PC, Android, iOS, HTML5 và các nền tảng khác. Bằng cách thiết kế trò chơi có kiến trúc dựa trên nút, thiết kế trình kết xuất 3D có thể nâng cao giao diện của trò chơi 3D. Chức năng chơi trò chơi 2D với các công cụ tích hợp hoạt động theo tọa độ pixel để kiểm soát hiệu ứng chơi trò chơi 2D.
Cho dù chọn công cụ trò chơi nào, các nhà phát triển công nghệ trò chơi front-end cần xem xét cách sử dụng thực tế của nó. Vì trò chơi Web3 là hàng tiêu dùng nên cơ chế chơi đa dạng (chẳng hạn như sự tập trung, sự đồng cảm và trí tưởng tượng) và trải nghiệm tương tác cảm xúc sâu sắc (như niềm vui, nỗi sợ hãi, ham muốn, tăng trưởng, thư giãn, thư giãn và bất ngờ, v.v.) là điều quan trọng cần duy trì. tiền đề tiêu dùng của người tiêu dùng. Phần sau đây lấy hệ thống mô phỏng và kết xuất vật lý (hệ thống kết xuất/trình kết xuất) trong quá trình trò chơi làm ví dụ để phân tích các chi tiết kỹ thuật và các vấn đề về trải nghiệm người dùng mà các kỹ thuật viên front-end cần cân nhắc khi sử dụng công cụ trò chơi.
Nếu không có mô phỏng chính xác các hiệu ứng vật lý, ngay cả trò chơi lộng lẫy nhất cũng sẽ trông tĩnh và nhàm chán. Các cảnh đa dạng trong trò chơi đều liên quan đến các nguyên tắc vật lý và động cơ vật lý. Công cụ vật lý là một thành phần gán các đối tượng trong thế giới trò chơi với các đặc tính vật lý trong thế giới thực (chẳng hạn như trọng lượng và hình dạng, v.v.) và trừu tượng hóa chúng thành các mô hình cơ thể cứng nhắc (bao gồm ròng rọc và dây thừng, v.v.), cho phép các đối tượng trò chơi mô phỏng chuyển động của thế giới thực dưới tác dụng của lực và quá trình va chạm giữa chúng. Nghĩa là, dựa trên mô hình cơ học cổ điển của Newton, chuyển động, quay và va chạm của các đối tượng trong trò chơi được tính toán thông qua một API đơn giản và tính toán tác động của chuyển động và va chạm thực tế. Trong quá trình tính toán, các lý thuyết và tính toán từ nhiều ngành như động học và động lực học được áp dụng.
Động học: từ quan điểm hình học (tham khảo không liên quan đến Các tính chất vật lý của bản thân vật và lực tác dụng lên vật) Là nhánh của cơ học mô tả và nghiên cứu sự thay đổi vị trí của vật theo thời gian. Động học điểm nghiên cứu các phương trình chuyển động, quỹ đạo, độ dịch chuyển, tốc độ, gia tốc và các đặc tính chuyển động khác của điểm, cũng như các phép biến đổi trong các không gian khác nhau. Động học là một nhánh của cơ học lý thuyết sử dụng các phương pháp hình học để nghiên cứu chuyển động của vật thể. Trong quá trình làm việc, công nghệ front-end cần xem xét bổ sung các giả định để giảm độ phức tạp tính toán đồng thời bám sát các quy tắc vật lý thực tế nhất có thể. Các giả định phổ biến bao gồm: không xem xét chuyển động dưới tác dụng của ngoại lực, coi một vật thể như một thành phần hình học và trừu tượng hóa nó như một mô hình chuyển động của hạt và chỉ xem xét các tính chất của vật thể (như vị trí, tốc độ, góc, v.v.) .
Động lực học: Chủ yếu nghiên cứu mối quan hệ giữa lực tác dụng lên một vật và chuyển động của vật đó . Đối tượng nghiên cứu của động lực học là những vật thể vĩ mô chuyển động chậm hơn nhiều so với tốc độ ánh sáng. Trong công cụ vật lý trò chơi, nó chủ yếu liên quan đến động lực học của vật rắn, bao gồm các định lý cơ bản về động lực học hệ hạt, định lý động lượng, định lý mômen động lượng, định lý động năng và các định lý khác rút ra từ ba định lý cơ bản này. Trong số đó, động lượng, mô men động lượng và động năng là những đại lượng vật lý cơ bản mô tả chuyển động của các hạt, hệ hạt và vật rắn. Trong công việc và kỹ thuật tính toán, các yếu tố và giả định cần được tính đến bao gồm: ảnh hưởng của ngoại lực đến chuyển động của vật thể, vai trò của các lực (các lực như trọng lực, lực cản và ma sát tác dụng lên trọng lượng và hình dạng của vật thể). , thậm chí cả vật thể đàn hồi), các giả định về vật thể cứng và vật thể trong trò chơi gần với chuyển động của chúng trong thế giới thực, v.v.
Sử dụng công cụ vật lý, nhà phát triển trò chơi chỉ cần cân nhắc việc đưa ra các hình dạng và lực cho các đối tượng trong trò chơi (giả định là phân bố đồng đều) và các lực. Việc tính toán chuyển động và va chạm được tự động hoàn thành do công cụ trò chơi điều khiển. Và dựa trên phân tích trên của công cụ vật lý, nhóm kỹ thuật front-end không cần phải khám phá kiến thức động học phức tạp cũng như tính toán và tối ưu hóa va chạm mà chỉ cần nhập các tham số vào công cụ vật lý. Tuy nhiên, cần lưu ý rằng để sử dụng hiệu quả công cụ vật lý, đội ngũ kỹ thuật front-end không chỉ cần hiểu kiến thức cơ bản về chuyển động vật lý mà còn cần có cái nhìn sâu sắc về các hiện tượng đặc biệt được tạo ra bởi mô phỏng rời rạc của chuyển động vật lý. trò chơi để tránh sự biến dạng của trò chơi. Các kỹ thuật viên giao diện người dùng có kinh nghiệm cũng cần xem xét tính trôi chảy của trò chơi, hiệu suất chạy trò chơi và các khía cạnh khác.
Trước khi xây dựng mô hình chuyển động cơ thể cứng nhắc trong trò chơi, cần xem xét các yếu tố sau:
Liệu mô hình mà nó đặt ra có phải là một vật thể cứng và mức độ biến dạng đàn hồi của nó sau khi chịu ứng suất hay không;
< p style="text-align : left;">Hình dạng và kích thước của nó sẽ thay đổi trong quá trình chuyển động hay sau khi bị tác động bởi lực;
Nó đang chuyển động. Vị trí tương đối của từng điểm bên trong vật thể có thay đổi sau khi bị trung hòa hay chịu tác dụng của lực hay không;
Do đó, dựa trên phân tích ở trên, Nhóm kỹ thuật cần thiết lập tâm, hình dạng, khối lượng, hướng chuyển động ban đầu và quỹ đạo của vật thể. Hơn nữa, xét về trọng lực và chuyển động của vật, vật cần tập trung vào việc xác lập khối tâm của nó. Giả sử mô hình vật là đồng nhất và tâm trùng với tâm khối. Khi xác lập chuyển động của một vật cần xét đến việc phân tích lực tác dụng lên vật thành lực tác dụng lên tâm và mômen quay quanh tâm. Cài đặt thông số của nó cần phải phù hợp với sự hiểu biết của người chơi về các vật thể và chuyển động để tạo cảm giác đắm chìm. Nếu không, người chơi sẽ hành động trong suốt trò chơi và sẽ khó tạo ra cảm xúc đắm chìm. Hình sau đây là sơ đồ phân rã của lực và mô-men xoắn:
Để đạt được hiệu quả vật lý thực tế hành vi, trò chơi Các vật thể trong đó cần tăng tốc một cách chính xác (nghĩa là phù hợp với nhận thức của con người) và chịu tác động của các lực như va chạm và trọng lực. Điều đầu tiên cần lưu ý là khi thiết lập chuyển động của mô hình đối tượng 3D, bạn phải xác định xem mô hình đối tượng có phải là đối tượng lồi hay không, tức là đường thẳng nối giữa hai đỉnh bất kỳ của nó sẽ không rời khỏi bề mặt của đối tượng. Mặc dù hầu hết các vật thể trong đời thực không lồi, nhưng trong các mô phỏng vật lý, các vật thể lồi thường là sự gần đúng của vật thể lý tưởng. Khi công cụ vật lý tính toán và mô phỏng các va chạm, các vật thể lồi có thể tạo ra các hành vi thụ động chính xác hơn, chẳng hạn như va chạm và rơi. Các hình dạng va chạm lồi tạo ra sự cân bằng giữa hình dạng va chạm nguyên thủy và lõm và có thể biểu diễn bất kỳ hình dạng phức tạp nào. Việc kiểm soát vật lý thông qua các tập lệnh có thể cung cấp cho các đối tượng các đặc tính động của phương tiện, máy móc và thậm chí cả vải. Tất nhiên, lưới đầu vào có thể lõm và công cụ vật lý sẽ tính toán các phần lồi của nó. Tùy thuộc vào độ phức tạp của đối tượng, việc sử dụng nhiều hình dạng lồi thường mang lại hiệu suất tốt hơn so với việc sử dụng các hình dạng va chạm lõm. Công cụ Godot cho phép tạo ra các hình dạng lồi gần khớp với các vật thể rỗng thông qua phân tách lồi, nhưng lợi ích hiệu suất này sẽ giảm đi khi số lượng hình dạng lồi trở nên quá cao. Đối với các đối tượng phức tạp lớn, chẳng hạn như toàn bộ các cấp độ, nên sử dụng hình dạng lõm. Khi mô hình hóa hình dạng của một đối tượng, các loại tham chiếu thường được sử dụng bao gồm hình cầu (SPHERE), khối lập phương (BOX), hình con nhộng (CAPSULE), hình trụ (CYLINDER) và vỏ lồi (CONVEX_HULL), v.v. Bạn có thể thêm điểm trung tâm, góc quay, kích thước và các thông số khác để sử dụng ở mặt trước kỹ thuật.
Khi mô phỏng chuyển động của đối tượng, cần có các quy trình tính toán bổ sung. Việc thêm công cụ vật lý khi nhập mô hình có thể không thành công, vì vậy bạn có thể bọc đối tượng bằng một Lưới đơn giản và để tư thế của đối tượng tuân theo Lưới. Lưới được tạo bằng Babylon có thể được thêm trực tiếp bằng các thuộc tính vật lý hoặc có thể được tạo bằng Shader tùy chỉnh. Mặc dù trình đổ bóng tùy chỉnh phức tạp hơn nhưng việc triển khai sẽ tốt hơn. Trong hoạt động trong trình chỉnh sửa, một hoặc nhiều hình dạng va chạm lồi có thể được tạo bằng cách chọn phiên bản lưới và sử dụng menu Lưới ở đầu khung nhìn 3D. Trình chỉnh sửa cung cấp hai chế độ tạo:
Tạo một va chạm lồi đơn bằng cách sử dụng Quickhull < /code> Thuật toán tạo nút ColisionShape bằng cách sử dụng hình dạng va chạm lồi được tạo tự động. Vì chỉ có một hình dạng duy nhất được tạo nên hiệu suất sẽ tốt hơn và phù hợp với các mô hình đối tượng nhỏ.
Tạo nhiều anh em va chạm lồi Bằng thuật toán V-HACD, có thể tạo một số nút ColisionShape. Mỗi nút có hình dạng lồi. Chính xác hơn cho các đối tượng lõm với chi phí hiệu năng do nhiều hình dạng được tạo ra. Đối với các đối tượng có độ phức tạp vừa phải, nó có thể nhanh hơn việc sử dụng một hình dạng va chạm lõm đơn lẻ.
Và đối với các hình dạng va chạm lõm, lõm là phương án chậm nhất nhưng cũng chính xác nhất trong Godot. Hình dạng lõm chỉ có thể được sử dụng trong StaticBodies. Không thể sử dụng Rigidbody với KinematicBodies hoặc RigidBody trừ khi chế độ của chúng là tĩnh. Khi không sử dụng GridMaps để thiết kế cấp độ, hình dạng lõm là phương pháp tốt nhất cho xung đột cấp độ. Bạn cũng có thể xây dựng lưới va chạm đơn giản hóa trong trình tạo mô hình 3D và để Godot tự động tạo các hình dạng va chạm cho nó. Có thể tạo các hình dạng va chạm lõm từ trình chỉnh sửa bằng cách chọn Meshlnstance và sử dụng menu Mesh ở đầu khung nhìn 3D. Trình chỉnh sửa hiển thị hai tùy chọn:
Tạo phần thân tĩnh Trimesh Tạo phần chứa và lưới Hình học khớp với nhau StaticBody lõm.
Tạo Trimesh Collision Sibling Tạo một nút CollisionShape có hình dạng lõm phù hợp với hình dạng của lưới.
Xin nhắc lại, bạn nên giữ số lượng hình dạng càng nhỏ càng tốt để cải thiện hiệu suất, đặc biệt là đối với động học như với tư cách là Đối tượng RigidBodies và KinematicBodies; tránh dịch, xoay hoặc chia tỷ lệ CollisionShapes để hưởng lợi từ các tối ưu hóa bên trong của công cụ vật lý. Khi sử dụng một hình dạng va chạm không được chuyển đổi duy nhất trong StaticBody, thuật toán pha rộng của động cơ có thể loại bỏ các PhysicsBodies không hoạt động. Nếu bạn gặp phải vấn đề về hiệu suất, bạn phải đánh đổi độ chính xác. Hầu hết các trò chơi không có va chạm chính xác 100% và các trò chơi đều tìm ra những cách sáng tạo để che giấu nó hoặc làm cho nó không bị phát hiện trong quá trình chơi trò chơi thông thường.
Nội dung trên sử dụng phần mô phỏng vật lý làm trường hợp để phân tích những gì mà các nhà phát triển front-end cần hoàn thiện và chú ý; và phần sau đây sẽ dựa trên hệ thống bản vẽ (rendering system/Renderer) làm ví dụ để phân tích những gì nhà phát triển front-end cần hoàn thành. Hệ thống vẽ cũng là một trong những phần cao nhất và khó nhất của toàn bộ game engine. Về lý thuyết, kết xuất cần giải quyết hai khía cạnh của vấn đề, đó là toán học (tính đúng đắn về mặt toán học, vật lý và thuật toán) và độ chính xác của các hiệu ứng kết xuất (ánh sáng, góc khối, tán xạ, khúc xạ và phản xạ, v.v.), để khiến Người dùng cảm thấy đắm chìm trong trò chơi. Trong quá trình triển khai và thực hành, cần giải quyết 4 vấn đề thực tế sau:
Cảnh rất phức tạp: nhiều đối tượng trong một cảnh được nhìn từ nhiều góc độ Các khía cạnh của kết xuất và khi tạo từng khung hình của màn hình trò chơi, cần phải lặp lại nhiều thao tác và trong nhiều cảnh, việc hiển thị nhiều đối tượng ở nhiều góc độ sẽ phức tạp hơn;
li>
Thích ứng chuyên sâu về phần cứng: Khả năng của phần cứng như PC và điện thoại di động ảnh hưởng đến hoạt động và đầu ra của thuật toán. Đối với phần cứng, cần phải xử lý nhiều tác vụ lấy mẫu kết cấu tốn nhiều thời gian và các phép tính toán học phức tạp hơn, chẳng hạn như các phép toán hàm siêu việt như sin, cos, hàm mũ và logarit, v.v. Ngoài ra, việc hỗ trợ các hoạt động có độ chính xác hỗn hợp của đơn vị phần cứng cơ bản thực hiện các hoạt động cũng là một trong những yếu tố quan trọng cần cân nhắc để điều chỉnh phần cứng sâu hơn;
Ngân sách hiệu suất: Bất kể thế nào Yêu cầu về màn chơi rất cao, game engine phải đảm bảo rằng màn chơi được hoàn thành trong vòng 33 mili giây (tức là 1/30 giây). Đối với các trò chơi có quy mô lớn và nhập vai sâu sắc, màn hình trò chơi có thể thay đổi rất nhiều trong một khoảng thời gian ngắn, nhưng yêu cầu về thời gian tính toán không thể rút ngắn. Hơn nữa, với sự phát triển của ngành công nghiệp trò chơi, yêu cầu về độ chính xác của trò chơi ngày càng cao hơn, tốc độ khung hình và yêu cầu khung hình cho màn hình trò chơi ngày càng cao hơn. Ngân sách thời gian của mỗi khung hình ngày càng nhỏ hơn nhưng đồng thời yêu cầu về chất lượng hình ảnh ngày càng cao hơn;
Việc phân bổ ngân sách thời gian của từng khung hình Màn hình game: xét về hiệu năng card đồ họa Về mặt chia sẻ, GPU có thể chiếm nhiều hơn CPU. Thuật toán kết xuất đồ họa không thể chiếm quá nhiều tài nguyên tính toán của CPU và tài nguyên tính toán cần được phân bổ cho các mô-đun khác trong hệ thống.
< hình>Nguồn: Buming Technology
Dựa trên phân tích ở trên, tính toán là một trong những chức năng cốt lõi quan trọng nhất của hệ thống vẽ và kết xuất, đó là thực hiện các phép tính trên hàng chục triệu đỉnh và pixel, đơn vị thao tác logic và kết cấu. Nói một cách đơn giản, trong hoạt động cụ thể, nhiều mặt phẳng được tạo bởi các hình tam giác được chiếu lên không gian màn hình sau khi đi qua ma trận chiếu; dữ liệu đỉnh được chuyển đổi thành các đoạn thông qua quá trình rasterization và mỗi phần tử trong đoạn tương ứng với bộ đệm khung. Một pixel trong khu vực, quá trình này chuyển đổi hình ảnh thành hình ảnh hai chiều bao gồm các raster. Trong quá trình tô màu và vẽ, trên mỗi pixel nhỏ, vật liệu và kết cấu tương ứng với pixel sẽ được tính toán và pixel sẽ được hiển thị thành màu tương ứng. Hơn nữa, để tăng cảm giác đắm chìm và chân thực, cần phải điều chỉnh các thông tin như ánh sáng và mẫu vật thể theo tình hình thực tế và hiển thị hiệu ứng cuối cùng. Sau đó, bộ đệm đỉnh và bộ đệm chỉ số được xây dựng và đồng thời tạo ra hiệu ứng cuối cùng. sau đó dữ liệu lưới được chuyển sang card đồ họa. Quá trình "chiếu-rasterization-tô bóng và kết xuất-xử lý hậu kỳ và chiếu sáng" ở trên là quá trình kết xuất.
Preview
Có được sự hiểu biết rộng hơn về ngành công nghiệp tiền điện tử thông qua các báo cáo thông tin và tham gia vào các cuộc thảo luận chuyên sâu với các tác giả và độc giả cùng chí hướng khác. Chúng tôi hoan nghênh bạn tham gia vào cộng đồng Coinlive đang phát triển của chúng tôi:https://t.me/CoinliveSG