Categories
Gambaru News

Tổng quan ngành Game Việt Nam: Chia sẻ tại event Unreal Engine & Game Development World Trends 2024

Tuy còn nhiều thách thức nhưng ngành công nghiệp game tại Việt Nam đã có nhiều chuyển biến mạnh mẽ. Việt Nam cũng tập hợp một cộng đồng chơi game khá lớn và tích cực, nhiều lập trình viên tài năng, sáng tạo, cùng với nhiều doanh nghiệp năng động.

Từ năm 2022 cho tới thời điểm hiện tại, “ miếng bánh doanh thu” đã lên đến con số trăm tỷ usd trên toàn cầu và rất nhiều quốc gia vẫn đang chạy đua giành lấy vị trí đứng đầu ngành game.

Để có thể sở hữu cơ hội phát triển đó, vai trò của chiến lược và công nghệ, nguồn nhân lực công nghệ thông tin là yếu tố quan trọng.

Hôm nay Hân sẽ chia sẻ với các bạn chi tiết hơn về các góc nhìn, thực trạng khách quan nhất của ngành game và những cơ hội việc làm đối với thế hệ trẻ.

Thực trạng ngành game tại Việt Nam

Ngành game Việt Nam mới phát triển được khoảng 20 năm.Trong khi đó, một số nước như Hàn Quốc, Trung Quốc chỉ đi trước Việt Nam khoảng 5-7 năm nhưng đã phát triển, hình thành một ngành công nghiệp từ lâu, con số của các nước khác cho thấy tại Việt Nam, doanh thu của ngành vẫn cần những bước đột phá mới.

Tổng quan ngành game Việt Nam
eTổng quan ngành game Việt Nam. Ảnh: GIANTY Việt Nam

Theo thống kê từ Data.ai, cứ 25 game tải về trên 2 kho ứng dụng này thì có 1 game được sản xuất bởi nhà phát hành game Việt Nam. Tại Việt Nam, hiện có khoảng 70% nhà phát triển game Việt Nam đều nhắm đến thị trường game toàn cầu. Điều này khẳng định một lần nữa, Việt Nam đang từng bước đạt được những bước tiến quan trọng.

Theo số liệu thống kê đưa ra trong đề án Chiến lược phát triển ngành game, doanh thu năm 2022 khoảng 400 triệu USD. Doanh thu ngành game cách đây 10 năm đã đạt khoảng 300 triệu USD. Như vậy, trong 10 năm qua doanh thu chỉ tăng thêm 100 triệu USD, đây là con số cần được tăng tốc.

Cũng như những ngành sáng tạo và công nghệ, rủi ro đầu tư trong lĩnh vực game rất lớn. Thực tế không hề dễ dàng, có rất nhiều sản phẩm, nhiều dự án được đầu tư lớn nhưng không đi được tới việc phát hành thương mại. 

Hạn chế: Hình ảnh, những thứ xuất hiện trên thị trường chỉ là phần nổi, phần còn ẩn bên dưới có thể là những khoản thua lỗ khổng lồ, kéo theo sự biến mất của nhiều doanh nghiệp, cũng như bất lợi đối với nhân lực ngành công nghệ thông tin tại Việt Nam.

Một số quốc gia như Singapore, UAE, Jordan… đã đưa ra nhiều sáng kiến, chính sách nhằm thu hút các tập đoàn, công ty game đến đặt trụ sở và hoạt động với mục tiêu chạm mốc doanh thu 200 tỷ USD vào năm 2024 – 2025.

Các bạn có thể nhận thấy, Việt Nam cần tăng tốc và nỗ lực nhiều hơn để giành vị trí hàng đầu ngành game.

Sự khác biệt giữa các dự án game truyền thống và GameFi?

Thị trường tiền điện tử đang bắt đầu xu hướng mới với sự ra đời của NFT và các trò chơi (game) dựa trên nền tảng blockchain.

Có thể bạn không tin nhưng ngành công nghiệp game tạo ra nhiều doanh thu hơn so với các ngành công nghiệp như điện ảnh và âm nhạc cộng lại!

Đây là ngành công nghiệp giải trí phát triển nhanh nhất trong thập kỷ qua và dường như nó không có dấu hiệu chậm lại hay biến mất.

Năm 2020, doanh thu từ ngành này đạt con số khổng lồ lên đến 180 tỷ USD.

GameFi là một cụm từ ám chỉ các game được phát triển trên nền tảng blockchain. Nó là sự kết hợp giữa hai thuật ngữ chơi game (Game) và tài chính (Finance).

Gamefi
Gamefi

Hiểu đơn giản là bạn tham gia một trò chơi trên nền tảng blockchain và có thể kiếm được thu nhập từ nó. 

Điều này tương tự với việc bạn chơi các game truyền thống sau đó bán vật phẩm để thu được tiền.

 Khác biệt ở đây là bạn sử dụng công nghệ blockchain, NFT, các nhân vật hoặc vật phẩm bạn có có thể đem giao dịch trên các chợ (marketplace) và thu về tiền điện tử.

Sự khác nhau giữa game truyền thống và gamefi

Các dự án GameFi chạy trên sổ cái phân tán của blockchain, cho phép người chơi có quyền sở hữu đối với các vật phẩm ảo trong game. Trái ngược với trò chơi truyền thống, nơi người dùng chơi để giành chiến thắng, các dự án GameFi áp dụng mô hình chơi để kiếm tiền (Play to Earn).

GameFi khác biệt so với game truyền thống là quyền sở hữu tài sản, khả năng giao dịch của những tài sản đó và tính minh bạch của dữ liệu. 

GameFi trao thưởng cho người chơi nhiều hơn cho tất cả thời gian và kỹ năng và thực sự sở hữu tài sản mà họ kiếm được trong game, và có thể giao dịch.

Hầu hết các game crypto và NFT phổ biến đều có các tính năng giúp chúng khác biệt với các online game truyền thống. Cụ thể:

  • Mô hình Play to Earn: Game trực tuyến truyền thống kiếm tiền thông qua mua hàng trong ứng dụng, tiếp thị liên kết và quảng cáo. Các dự án GameFi, người dùng có thể kiếm tiền bằng cách bán các vật phẩm trong game và thu về tiền điện tử.
  • Cách tiếp cận mới của GameFi: cho phép người chơi thêm giá trị trong thế giới thực vào các giao dịch mua trong game của họ. Các sản phẩm và vật phẩm trong trò chơi được lưu trữ trên sổ cái công khai phân tán hoặc chuỗi khối chạy trên mạng blockchain. Công nghệ blockchain này cho phép các token và vật phẩm trong trò chơi được giao dịch thành tiền điện tử và cuối cùng là tiền mặt thực tế.
  • Ít hoặc không có chi phí trả trước: Hầu hết các trò chơi GameFi đều được tải xuống và chơi miễn phí, điều này giúp chúng dễ tiếp cận hơn so với các trò chơi truyền thống.
  • Quyền sở hữu đối với tài sản trong game: Người chơi GameFi sở hữu các tài sản và NFT. Những thứ này sẽ được lưu trữ trên blockchain suốt đời. Điều này trái ngược với các trò chơi truyền thống, có thể bị đóng cửa bất cứ lúc nào, khiến game thủ có thể mất toàn bộ tài sản trong game.

Có thể nói rằng GameFi đang mang yếu tố tài chính lồng ghép vào các game.

Tuy nhiên, điều này thực sự có nghĩa là gì? 

Đối với các game truyền thống ngày nay, người chơi không thể dễ dàng tương tác và di chuyển tài sản giữa các trò chơi. Đây là một trở ngại lớn cho sự phát triển của thị trường và nó phải được loại bỏ nếu người chơi muốn có trải nghiệm liền mạch và thú vị. Đó là điều mà GameFi đang tập trung để cải thiện mô hình tài chính của game.

Việc tích hợp chúng thông qua một game hub phi tập trung mở rộng có nghĩa là các tài sản dưới dạng NFT và tài nguyên game có thể cùng nằm trong một nơi duy nhất.

Ngành công nghiệp Game 2023 đang trải qua một cuộc cách mạng

Không có nghi ngờ gì rằng các game dựa trên blockchain sẽ có tác động to lớn đến ngành công nghiệp game.

Và chúng ta đã thấy các công ty thành lập trong lĩnh vực này đang bàn tán nhiều về vấn đề công nghệ, các công ty mới trong thị trường tiền điện tử đang nhanh chóng thu hút sự chú ý và phát triển, Axie Infinity và Sandbox là hai ví dụ điển hình trong suốt 3 năm nay.

Không có gì ngạc nhiên khi ngày càng có nhiều đội ngũ xây dựng các game để thu hút cộng đồng,hệ sinh thái của thị trường sẽ cần những cách làm mạnh mẽ, hiệu quả để giải quyết vấn đề tương tác giữa những người chơi và giữa tất cả các game này.

Khi GameFi xuất hiện, cầu nối giữa các metaverse khác nhau, giữa các quốc gia, cộng đồng người chơi được mở rộng, triển vọng về tài chính tăng cao.

Ngành game sẽ có những xu hướng phát triển nào?

Thời gian qua, doanh nghiệp làm game cảm nhận được sự quan tâm, ủng hộ của các cơ quan quản lý nhà nước 

Tương lai ngành game sẽ có nhiều xu hướng phát triển và xu hướng gọi vốn cho các doanh nghiệp startup, ngành game vốn là ngành hấp dẫn nhưng không dễ, cơ hội chỉ đến khi Việt Nam có  những sản phẩm chất lượng.

Xu hướng phát triển ngành game
Xu hướng phát triển ngành game

Xu hướng là phát triển trong nước nhưng phát hành ở nước ngoài. 

Đây là xu hướng chủ đạo, biên giới của game dần dần được xóa bỏ và các nhà phát triển phát hành game ở quy mô nhỏ thường nhắm vào thị trường lớn.

Quy mô toàn cầu là miếng bánh lớn, đưa ngành game Việt Nam tăng trưởng, kéo theo sự phát triển của ngành dev, ngành truyền thông và design.

Tại những thị trường lớn ở châu Á, người chơi game local nhiều hơn game global. Tuy thị trường ngành game blockchain khốc liệt, mang tính cạnh tranh cao nhưng đi kèm với rât snhieuef cơ hội lớn.

Tại những thị trường lớn ở châu Âu, người chơi kết hợp chơi game và các hoạt động giao dịch tiền ảo khác. 

Cơ hội nào dành cho Developer hay Designer/Artist ngành game?

Khi ngành game được lưu thông như một ngành sản xuất, xuất khẩu, điều này mở rộng cơ hội cũng như phạm vi làm việc đối với thế hệ trẻ Việt Nam, đặc biệt là các bạn dev và design.

Cơ hội dành cho developer, designer, artist ngành Game
Cơ hội dành cho developer, designer, artist ngành Game

Việt Nam sở hữu lợi thế gì?

Việt Nam đã tập hợp được những cộng đồng chơi game khá lớn và tích cực, nhiều lập trình viên tài năng, sáng tạo, cùng với nhiều doanh nghiệp năng động. 

Thế hệ trẻ có sẵn lượng kiến thức lớn về lập trình và thiết kế hình ảnh cũng như truyền thông, các bạn được đào tạo tại trường và trong các kì thực tập, các bạn sở hữu lợi thế khi ngành lập trình phát triển mạnh mẽ , đa nền tảng, đa ngôn như, đa quốc gia.

Đây là lợi thế lớn các nhà phát hành có thể khai thác từ các bạn, phát triển những dự án game triển vọng, mang lại thu nhập cho người dùng và cơ hội việc làm cho các bạn.

Tại sao ngành game còn có thể giúp cho sự phát triển của trí tuệ và kỹ năng của con người?

Các trò chơi trực tuyến có thể giúp cho người chơi phát triển các kỹ năng tư duy, toán học, ngôn ngữ và giải quyết vấn đề và trò chơi trực tuyến giúp kết nối nhiều người, tổ chức và làm việc phấn đấu theo cùng một mục đích chung.

Ngành công nghiệp game có thể quảng bá hình ảnh của đất nước. Khi các trò chơi video được phát hành trên toàn cầu, chúng có thể giúp cho người nước ngoài hiểu hơn về văn hóa và đất nước của Việt Nam thông qua hình ảnh. sự kiện, các vật phẩm, phương thức game hoạt động…

Theo Hân, khi ngành dev và design đều coi ngành game như một lĩnh vực sản xuất/xuất khẩu công nghệ (tương tự như phim ảnh, hội họa…), thì chúng ta nên tập trung vào việc khuyến khích các nội dung tốt, đẩy lùi các nội dung gây hại.

Mặc dù ngành game từng có những định kiến, hình ảnh không đẹp mắt nhưng những năm gần đây, với sự nỗ lực từ Cục Phát thanh Truyền hình và Thông tin điện tử, cùng với sự ra đời của Liên minh game Việt Nam, vấn đề này đã được cải thiện rõ rệt.

Nhà nước đã có nhiều chính sách khuyến khích cũng như hỗ trợ phát triển ngành game, các trường đại học đã có xu hướng đưa blockchain làm một ngành học nhiều triển vọng.

Bạn có thể xem lại buổi chia sẻ của anh Hân Lê do Gamba tổ chức qua video bên dưới.

Tác Giả: Hân Lê (CEO, Galasta Studio)

Categories
Gambaru News

Stability AI chính thức phát hành mô hình tạo ảnh mới nhất, Stable Diffusion XL 1.0

Startup Stability AI tiếp tục hoàn thiện các mô hình generative AI của mình trước sự cạnh tranh ngày càng tăng — và những thách thức về mặt đạo đức.

Hôm nay, Stability AI đã công bố ra mắt Stable Diffusion XL 1.0, một mô hình chuyển văn bản thành hình ảnh (text to image) mà công ty mô tả là bản phát hành “tiến bộ nhất” cho đến nay. Stable Diffusion XL 1.0 mang đến màu sắc “rực rỡ hơn” và “chính xác” cũng như độ tương phản, đổ bóng và ánh sáng tốt hơn so với phiên bản tiền nhiệm.

Chính thức ra mắt Stable Diffusion XL
Chính thức ra mắt Stable Diffusion XL

Joe Penna, người đứng đầu bộ phận Machine learning ứng dụng của Stability AI cho biết Stable Diffusion XL 1.0, chứa 3,5 tỷ tham số (parameters), có thể mang lại hình ảnh có độ phân giải 1 megapixel đầy đủ “chỉ trong vài giây” ở nhiều tỷ lệ khung hình. “Tham số” là các phần của mô hình được học từ dữ liệu huấn luyện và về cơ bản xác định kỹ năng của mô hình đối với một vấn đề, trong trường hợp này là tạo ra hình ảnh.

Mô hình Stable Diffusion trước đó, rồi phiên bản Stable Diffusion XL 0.9, cũng có thể tạo ra hình ảnh có độ phân giải cao hơn, nhưng yêu cầu nhiều khả năng điện toán hơn.

Penna cho biết: “Stable Diffusion XL 1.0 có thể tùy chỉnh, sẵn sàng để tinh chỉnh các khái niệm và phong cách. Nó cũng dễ sử dụng hơn, tạo được các thiết kế phức tạp với lời nhắc xử lý ngôn ngữ tự nhiên cơ bản.

Ngoài ra, Stable Diffusion XL 1.0 còn được cải thiện trong lĩnh vực tạo văn bản. Penna cho biết, trong khi nhiều mô hình text-to-image tốt nhất gặp khó khăn trong việc tạo ra hình ảnh có logo dễ đọc, ít thư pháp hoặc phông chữ hơn, thì Stable Diffusion XL 1.0 có khả năng tạo văn bản “nâng cao” và dễ đọc.

Theo báo cáo của SiliconAngle và VentureBeat, Stable Diffusion XL 1.0 hỗ trợ inpainting (tái tạo lại các phần còn thiếu của hình ảnh), outpainting (mở rộng hình ảnh hiện có) và prompt “từ hình ảnh đến hình ảnh” (image-to-image) — nghĩa là người dùng có thể nhập hình ảnh và thêm một số lời nhắc văn bản để tạo các biến thể chi tiết hơn của hình ảnh đó. Ngoài ra, mô hình hiểu các hướng dẫn phức tạp, gồm nhiều phần được đưa ra trong các prompt ngắn, trong khi các mô hình Stable Diffusion trước đó cần các prompt dài hơn hơn.

Ông nói thêm: “Chúng tôi mong rằng qua việc phát hành mô hình nguồn mở mạnh mẽ hơn này, độ phân giải của hình ảnh sẽ không phải là thứ duy nhất tăng gấp bốn lần mà còn là những tiến bộ sẽ mang lại lợi ích to lớn cho tất cả người dùng”.

Nhưng cũng giống như các phiên bản trước của Stable Diffusion, mô hình này làm nảy sinh các vấn đề đạo đức nghiêm trọng.

Một số ảnh tạo bằng Stable Diffusion
Một số ảnh tạo bằng Stable Diffusion

Về lý thuyết, phiên bản mã nguồn mở của Stable Diffusion XL 1.0 có thể bị kẻ xấu sử dụng để tạo ra nội dung độc hại hoặc có hại, chẳng hạn như deepfakes không có sự đồng ý từ ‘người bị hại’. Đó là một phần phản ánh dữ liệu được sử dụng để huấn luyện nó: hàng triệu hình ảnh từ khắp nơi trên web.

Vô số hướng dẫn minh họa cách sử dụng các công cụ riêng của Stability AI, bao gồm DreamStudio, giao diện người dùng mã nguồn mở cho Stable Diffusion, để tạo deepfakes. Vô số người khác chỉ ra cách tinh chỉnh các mô hình Stable Diffusion cơ bản để tạo nội dung khiêu dâm.

Penna không phủ nhận rằng có thể xảy ra lạm dụng — và thừa nhận rằng mô hình này cũng có những thành kiến nhất định. Tuy nhiên, ông nói thêm rằng Stability AI đã thực hiện “các bước bổ sung” để giảm thiểu việc tạo nội dung có hại bằng cách lọc dữ liệu đào tạo của mô hình để tìm hình ảnh “không an toàn”, đưa ra các cảnh báo mới liên quan đến lời nhắc có vấn đề và chặn càng nhiều thuật ngữ có vấn đề trong công cụ càng tốt.

Bộ đào tạo của Stable Diffusion XL 1.0 cũng bao gồm tác phẩm nghệ thuật của các nghệ sĩ đã phản đối các công ty, trong đó có Stability AI sử dụng tác phẩm của họ làm dữ liệu đào tạo cho các mô hình Generative AI. Stability AI tuyên bố rằng nó được bảo vệ khỏi trách nhiệm pháp lý theo học thuyết sử dụng hợp lý, ít nhất là ở Mỹ. Nhưng điều đó không ngăn được một số nghệ sĩ và công ty lưu ảnh Getty Images đệ đơn kiện để ngăn chặn hoạt động này.

Stability AI, có quan hệ đối tác với công ty khởi nghiệp Spawning để tôn trọng các yêu cầu “chọn không tham gia” từ các nghệ sĩ này, nói rằng họ chưa xóa tất cả các tác phẩm nghệ thuật bị gắn cờ khỏi bộ dữ liệu đào tạo của mình nhưng nó “tiếp tục kết hợp các yêu cầu của các nghệ sĩ”.

Penna cho biết: “Chúng tôi không ngừng cải thiện chức năng an toàn của Stable Diffusion và nghiêm túc trong việc tiếp tục lặp lại các biện pháp này. Hơn nữa, chúng tôi cam kết tôn trọng các yêu cầu của nghệ sĩ về việc xóa khỏi tập dữ liệu đào tạo.”

Cùng với việc phát hành Stable Diffusion XL 1.0, Stability AI sẽ phát hành một tính năng tinh chỉnh trong bản beta cho API của mình, tính năng này sẽ cho phép người dùng sử dụng tối thiểu năm hình ảnh để “chuyên môn hóa” việc tạo cho những người, sản phẩm cụ thể… Công ty cũng đang đưa Stable Diffusion XL 1.0 lên Bedrock, nền tảng đám mây của Amazon để lưu trữ các mô hình generative AI — mở rộng dựa trên sự hợp tác đã công bố trước đó với AWS.

Việc thúc đẩy quan hệ đối tác và các khả năng mới xuất hiện khi Stability gặp khó khăn trong nỗ lực thương mại — đối mặt với sự cạnh tranh gay gắt từ OpenAI, Midjourney và những bên khác. Vào tháng 4, Semafor báo cáo rằng Stability AI đã huy động được hơn 100 triệu đô vốn đầu tư mạo hiểm cho đến nay, đang đốt tiền – thúc đẩy việc đóng một khoản nợ chuyển đổi trị giá 25 triệu đô vào tháng 6 và một cuộc săn lùng giám đốc điều hành để giúp tăng doanh số bán hàng.

Giám đốc điều hành của Stability AI, Emad Mostaque cho biết trong một thông cáo báo chí:

“Mô hình SDXL mới nhất đại diện cho bước tiếp theo trong di sản đổi mới của Stability AI và khả năng đưa các mô hình truy cập mở tiên tiến nhất ra thị trường cho cộng đồng AI. Ra mắt phiên bản 1.0 trên Amazon Bedrock thể hiện cam kết mạnh mẽ của chúng tôi trong việc hợp tác cùng AWS để cung cấp các giải pháp tốt nhất cho nhà phát triển và khách hàng của chúng tôi.”

Nguồn: TechCrunch

Categories
Events past

[OFFLINE] Game Series #01 – Unreal Engine and Game Development World Trends in 2024

Are you passionate about the world of gaming? Do you dream of creating the next groundbreaking video game or exploring the latest trends in game development?

Look no further! We are thrilled to announce the most exciting and informative offline event of this month:

Game Series #01 - Unreal Engine & Game Development World Trend 2024
Game Series #01 – Unreal Engine & Game Development World Trend 2024

Get ready to dive deep into:

  • How the Current and Past Games Are Developing
  • Traditional Games and GameFi
  • What Will the Future Game Market Be? What Is the Trend Towards?
  • Opportunities for Dev and Designer Now and in the Future

Why Attend?

  • Gain invaluable insights from leading experts and visionaries in game development.
  • Stay ahead of the competition by understanding the latest trends and future directions.
  • Network with like-minded professionals, potential collaborators, and mentors.
  • Explore potential career paths and entrepreneurial opportunities.

Don’t miss your chance to be a part of the most influential gathering of game developers and industry enthusiasts at “Unreal Engine & Game Development World Trends 2024“.

Register now to secure your spot and embark on an unforgettable journey of knowledge, inspiration, and limitless possibilities in the world of game development!

Note:

1.) We will contact you to confirm your participation;
2.) The event will not be LIVESTREAMED;
3.) Event content will be RECORDED & UPLOADED to Gamba’s youtube channel next week;
4.) In case of any changes to the event format or schedule, registered attendees will be NOTIFIED promptly.
Categories
Dev's Corner

Software Engineering hiện đại — Phần 1: Thiết kế hệ thống

Lớn lên vào cuối những năm 80 và đầu những năm 90, việc tiếp xúc với máy tính của tôi hầu như chỉ giới hạn ở các máy chơi game (tôi đã cân nhắc các máy tính chơi game Atari 800 và Commodore 64 vì tôi chỉ từng thấy các game được chạy trên chúng) hoặc các hệ thống x86 đời đầu. Mãi cho đến khi vào đại học những năm 2000, tôi mới có được máy trạm SPARC, UNIX và Slackware Linux của Sun Microsystems mà tôi có thể cài đặt trên máy Intel 486 của mình ở nhà.

Trước đó, phát triển phần mềm chủ yếu là về phần mềm chạy cục bộ trên máy của bạn hoặc, nếu bạn có quyền truy cập vào phần mềm đó, một máy tính dùng chung với sức mạnh xử lý cao hơn đáng kể có sẵn để bạn… làm những việc liên quan đến kinh doanh. Ở trường đại học, tôi nhớ đã nghe nói về một chương trình được sử dụng bởi các nhà khoa học máy tính cần một bộ xử lý đa lõi để tạo lịch học của hàng nghìn sinh viên; phải mất hàng tuần để tạo và in. Cho đến nay, tôi vẫn không chắc cái nào mất nhiều thời gian hơn – chạy chương trình hay in ra giấy.

Ngày nay, phần lớn phần mềm được phát triển chạy trên đám mây, chạy trên thiết bị yêu cầu quyền truy cập vào đám mây hoặc cung cấp sức mạnh cho phần mềm khác cũng chạy trên đám mây. Rất hiếm khi làm việc trên một hệ thống phần mềm hoạt động trong không gian hạn chế (ví dụ: hệ thống phần mềm nhúng – embedded software system) không có quyền truy cập vào nền tảng điện toán mạnh hơn ở nơi khác. Các hệ thống kế toán hiện xử lý hàng đống dữ liệu được lưu trữ trong các trang trại máy chủ tại cơ sở của công ty hoặc trong data warehouse. Các hệ thống bán hàng hiện quản lý quan hệ khách hàng do bên thứ ba quản lý với các plugin được phát triển bởi nhiều bên thứ ba hoặc nhà phát triển nội bộ hơn.

Nhưng làm thế nào để các hệ thống phần mềm này được xây dựng phục vụ hàng trăm đến hàng triệu người dùng trong khi vẫn duy trì hiệu suất và khả năng phản hồi mà chúng ta ngày càng mong đợi từ phần mềm chúng ta sử dụng ngày nay?

Là một kỹ sư phần mềm trong hơn 20 năm qua, tôi đã chứng kiến nhiều hệ thống được phát triển từ mọi cấp độ của hệ thống. Trình xử lý ngắt trong những ngày DOS cho tới hoạt ảnh dựa trên JavaScript và thậm chí tạo báo cáo không cần mã. Một vài tuần trước, tôi thậm chí đã dùng ChatGPT-4 để tạo một số mã Python dựa trên một số mô tả mà tôi đã cung cấp cho những gì tôi muốn! Nhưng đó là một câu chuyện cho một ngày khác.

Trong bài viết này, chúng ta sẽ nói về thiết kế hệ thống, cách nó trở thành một phần quan trọng trong thực tiễn software engineering hiện đại và cách nó trở thành một trong những lĩnh vực chính mà các software engineer vẫn có thể mang lại giá trị trong ngắn hạn và trung hạn.

Tầm quan trọng của thiết kế hệ thống (Systems design)

Tầm quan trọng của Thiết kế hệ thống (System Design)
Tầm quan trọng của Thiết kế hệ thống (System Design)

Ngày xưa, tôi là kỹ sư phần mềm trong một công ty gặp vấn đề trong việc xử lý gánh nặng thành công mà chính họ đã mang lại. Tôi sẽ gọi công ty này là Friendster. Khi tôi gia nhập công ty, dự án mà tôi được giao đã bị trễ và có nhiều lỗi liên quan đến quản lý bộ nhớ. Dịch vụ cốt lõi của họ (vâng, nó là một microservice trước khi chúng tôi gọi nó vào năm 2007) được viết bằng C++ nhưng bị rò rỉ bộ nhớ, mất quá nhiều thời gian để xử lý các yêu cầu và được thiết kế để lưu vào bộ đệm và cung cấp dữ liệu trong bộ nhớ của chính nó. Nó cần phải không trạng thái (stateless) nhưng cuối cùng lại trở thành trạng thái (stateful).

Một vài tuần sau khi bắt đầu dự án, tôi đã xin lãnh đạo kỹ thuật cấp cao bỏ việc lặp lại dịch vụ này và thay vào đó hãy viết một cái gì đó từ đầu đáp ứng các yêu cầu; nó sẽ là một sự thay thế của việc triển khai hiện có. Chúng tôi đã phải vượt qua thời hạn vì dịch vụ chỉ có thể xử lý thêm vài tháng tăng trưởng nữa trước khi không thể xử lý kích thước của bộ đệm theo cách cũ nữa.

Khởi động lại dịch vụ mất nhiều thời gian hơn thời gian nó có thể duy trì cho đến khi rò rỉ bộ nhớ làm nó ngừng hoạt động. Đây là khoảnh khắc “đặt cược sự nghiệp của tôi”. Chúng tôi phải làm cho nó hoạt động.

Trong thiết kế hệ thống. Điều đầu tiên chúng tôi làm là liệt kê những yêu cầu mà hệ thống phải đáp ứng, hợp đồng giữa các dịch vụ phụ thuộc (mã PHP frontend) và dịch vụ cốt lõi này và kế hoạch về cách chúng tôi sẽ đáp ứng ba yêu cầu phi kỹ thuật chính : hiệu suất (performance), hiệu quả (efficiency) và khả năng phục hồi (resilience).

Thiết kế hệ thống liên quan đến việc hiểu các ràng buộc theo đó hệ thống phải thực hiện chức năng của nó, các chức năng được yêu cầu là gì và những thuộc tính nào của hệ thống là quan trọng để giữ liên quan đến tất cả các thuộc tính khác. Khi bạn đã xác định những điều này, bạn có thể bắt đầu thiết kế một hệ thống đáp ứng các yêu cầu và lập kế hoạch phân phối giải pháp một cách có hệ thống.

Các thành phần của thiết kế hệ thống

Khi chúng ta nói về thiết kế hệ thống, thường có một số thành phần đòi hỏi điều này:

  • Kiến trúc – giải pháp tổng thể trông như thế nào? Liệu nó liên quan đến nhiều hệ thống con? Có các thành phần riêng lẻ tạo nên một tổng thể? Làm thế nào để chúng tương tác, và làm thế nào để chúng liên quan đến nhau?
  • Cấu trúc liên kết (Topology) – Có phân lớp cho giải pháp không? Nếu đây là một hệ thống phân tán, thì các dịch vụ thành phần được đặt ở đâu về mặt vật lý hoặc logic trong mối quan hệ với nhau?
  • Thiết kế cấp thấp — Bạn đã xác định những giao diện nào thông qua đó các phần khác nhau của hệ thống tương tác với nhau? Có thuật toán cụ thể nào bạn đang sử dụng để giải quyết các khía cạnh chính của giải pháp (hiệu suất, hiệu quả, thông lượng, khả năng phục hồi, v.v.) không?

Nó giúp hiểu những điều đầu tiên như: hệ thống có độc lập không (tức là sẽ không có quyền truy cập vào các tài nguyên bên ngoài) hay nó được phân tán? Nó sẽ có giao diện người dùng hay nó sẽ không tương tác (ví dụ: nó có tạo báo cáo được in ra hay nó sẽ yêu cầu đầu vào của con người hoặc hệ thống khác trong quá trình hoạt động)? Nó có cần xử lý nhiều lưu lượng truy cập không? Nó có nghĩa là chỉ được sử dụng bởi mười người tại bất kỳ thời điểm nào hay 10 triệu người dùng sẽ sử dụng nó tại bất kỳ thời điểm nào?

Khi bạn đã có câu trả lời cho một số câu hỏi này, việc đưa ra quyết định thông qua các nguyên tắc thiết kế hệ thống sẽ dễ dàng hơn.

Các nguyên tắc thiết kế hệ thống

Các nguyên tắc của thiết kế hệ thống (System Design Principles)
Các nguyên tắc của thiết kế hệ thống (System Design Principles)

Một số nguyên tắc chính để thiết kế hệ thống phần mềm trong thời đại hiện đại này đã không xuất hiện cho đến khi hệ thống cần mở rộng quy mô — từ hệ thống một người dùng thành hệ thống có thể xử lý hàng nghìn, thậm chí hàng triệu người dùng cùng một lúc. Dưới đây là một số chúng tôi sẽ đề cập trong bài viết này:

  • Khả năng mở rộng (Scalability)
  • Độ tin cậy (Reliability)
  • Khả năng bảo trì (Maintainability)
  • Khả dụng (Availability)
  • Bảo mật (Security)

Scalability (Khả năng mở rộng)

Một hệ thống có khả năng mở rộng khi nó có thể được triển khai để xử lý sự tăng trưởng về tải với sự tăng trưởng tương ứng về tài nguyên. Hệ số mở rộng của một hệ thống được định nghĩa là sự tăng trưởng về lượng tài nguyên cần thiết để phục vụ cho sự tăng trưởng về tải trên hệ thống. Chúng tôi gặp hai trường hợp mở rộng điển hình với các hệ thống phần mềm: mở rộng chiều dọc và mở rộng chiều ngang.

Mở rộng chiều dọc đề cập đến việc cung cấp thêm khoảng không hoặc tài nguyên máy đơn cho hệ thống phần mềm để xử lý sự gia tăng về yêu cầu. Hãy xem xét trường hợp của một thiết bị lưu trữ gắn mạng. Bạn cung cấp càng nhiều dung lượng lưu trữ thông qua thiết bị, thì thiết bị có thể lưu trữ càng nhiều dữ liệu. Nếu bạn cần nó xử lý nhiều kết nối đồng thời hơn và Hoạt động I/O (IOP), thông thường bạn cần bổ sung thêm sức mạnh tính toán và giao diện mạng để xử lý lượng tải tăng lên.

Mở rộng theo chiều ngang đề cập đến việc sao chép một hệ thống hoặc nhiều máy bằng các bản sao của phần mềm để xử lý sự tăng trưởng các yêu cầu. Hãy xem xét trường hợp máy chủ nội dung web tĩnh ẩn sau bộ cân bằng tải. Thêm nhiều máy chủ hơn cho phép nhiều máy khách hơn kết nối và tải xuống nội dung từ các máy chủ web và khi tải đã giảm, số lượng máy chủ web có thể được thu nhỏ xuống kích thước phù hợp với nhu cầu hiện tại.

Một số hệ thống có thể xử lý mở rộng lai hoặc chéo. Ví dụ: một số kiến trúc cơ sở dữ liệu phân tán cho phép tách các nút tính toán và lưu trữ để khối lượng công việc tính toán nặng có thể sử dụng các nút có nhiều tài nguyên tính toán hơn. Ngược lại, khối lượng công việc nặng của IOP có thể chạy trên các nút lưu trữ + tính toán. Ví dụ: các ứng dụng xử lý luồng có thể tách các khối lượng công việc yêu cầu nhiều bộ nhớ và điện toán hơn (ví dụ: khối lượng công việc tìm nguồn cung ứng sự kiện hoặc phân tích) và mở rộng những khối lượng công việc đó một cách thích hợp và độc lập khỏi khối lượng công việc nặng của IOP (ví dụ: nén và lưu trữ).

Reliability (Độ tin cậy)

Một hệ thống đáng tin cậy khi nó có thể chịu được lỗi một phần và phục hồi mà không làm giảm chất lượng dịch vụ nghiêm trọng. Một phần của độ tin cậy của hệ thống bao gồm khả năng dự đoán các hoạt động của nó về độ trễ, thông lượng và tuân thủ phạm vi hoạt động đã thỏa thuận.

Các phương pháp thông thường để đảm bảo độ tin cậy của hệ thống bao gồm:

  • Thiết lập dự phòng hệ thống để hỗ trợ chuyển đổi dự phòng minh bạch hoặc gián đoạn tối thiểu.
  • Xây dựng khả năng chịu lỗi trong trường hợp lỗi nội bộ hoặc lỗi do đầu vào gây ra.
  • Xác định rõ ràng các hợp đồng và mục tiêu về độ trễ, thông lượng và tính khả dụng.
  • Thiết lập đủ công suất dự phòng để đáp ứng sự gia tăng tải đột biến và tự nhiên.
  • Các biện pháp bảo vệ chất lượng dịch vụ để thực thi giới hạn tỷ lệ và cách ly khách hàng/hoạt động.
  • Thực hiện hạ cấp dịch vụ nhẹ nhàng trong các tình huống quá tải hoặc lỗi nghiêm trọng.

Điều quan trọng cần nhớ để tạo ra các hệ thống đáng tin cậy là xử lý các lỗi tiềm ẩn theo cách được xác định rõ ràng mà các hệ thống phụ thuộc có thể phản ứng. Điều này nghĩa là nếu có những yếu tố đầu vào có thể khiến hệ thống khả dụng cho tất cả mọi người, thì đó không phải là một hệ thống đáng tin cậy. Tương tự, nếu hệ thống phụ thuộc vào một hệ thống khác có thể không đáng tin cậy, thì nó sẽ xử lý sự không đáng tin cậy đó bằng các chiến lược để đảm bảo độ tin cậy.

Khả năng bảo trì (Maintainability)

Một hệ thống có thể bảo trì được khi được thay đổi với nỗ lực tương xứng và được triển khai với sự gián đoạn tối thiểu của người dùng. Điều này đòi hỏi phải triển khai hệ thống theo cách giả định rằng các yêu cầu sẽ thay đổi và hệ thống đủ linh hoạt để xử lý những thay đổi có thể thấy trước về hướng. Điều đó cũng có nghĩa là đảm bảo rằng mã có thể đọc được để nhóm người bảo trì tiếp theo (có thể là cùng một nhóm nhưng nhìn nó bằng con mắt mới trong tương lai) có thể bảo trì phần mềm và phát triển phần mềm để đáp ứng nhu cầu trong tương lai.

Không ai muốn bị mắc kẹt trong việc duy trì phần mềm cứng nhắc, khó thay đổi, không được tổ chức tốt, tài liệu kém, thiết kế kém, chưa được kiểm tra và lắp ráp lộn xộn.

Đảm bảo chất lượng mã cao là một phần của kỹ thuật xuất sắc phản ánh tính chuyên nghiệp và tay nghề xuất sắc. Đây không chỉ là một việc nên làm mà còn được biết là cho phép các nhóm kỹ thuật có chức năng cao và hiệu suất cao cung cấp phần mềm có thể thay đổi và mở rộng để mang lại giá trị một cách nhất quán.

Availability (Tính khả dụng)

Nếu dịch vụ của bạn không khả dụng, nó có thể không tồn tại.

Thiết kế hệ thống nên giải quyết cách hệ thống luôn sẵn sàng để duy trì sự liên quan đến khách hàng và người dùng hệ thống. Điều này có nghĩa là:

  • Giới thiệu các dự phòng để xử lý các lỗi hệ thống cơ bản.
  • Có các kịch bản sao lưu và khôi phục cũng như hướng dẫn vận hành để khôi phục hệ thống khỏi các sự cố nghiêm trọng.
  • Loại bỏ càng nhiều điểm lỗi đơn lẻ khỏi hệ thống.
  • Cùng với khả năng mở rộng theo chiều ngang, hãy có các bản sao theo khu vực và thiết lập mạng phân phối nội dung (nếu thích hợp) để cung cấp dữ liệu của bạn.
  • Giám sát tính khả dụng của hệ thống từ quan điểm của khách hàng để hiểu rõ hơn cách hệ thống của bạn đang phục vụ khách hàng.

Tôi đã sớm học được rằng một hệ thống không ổn định và không khả dụng đôi khi có thể là nguyên nhân lớn nhất khiến khách hàng của bạn mất lòng tin. Một khi bạn đã đánh mất lòng tin của khách hàng thì sẽ rất khó lấy lại được.

Security (Bảo mật)

Thiết kế hệ thống nên coi bảo mật là một khía cạnh quan trọng, đặc biệt là trong thời đại của các hệ thống kết nối internet, nơi các mối đe dọa và lỗ hổng bảo mật có thể gây hại thực sự cho khách hàng của chúng ta và người dùng hệ thống. Mục tiêu của việc xây dựng phần mềm an toàn không phải là để đạt được sự hoàn hảo mà là để hiểu những rủi ro liên quan đến vi phạm và tấn công. Có một mô hình đe dọa bảo mật thích hợp và một cách tiếp cận có hệ thống để hiểu rủi ro nằm ở đâu và loại mối đe dọa nào đáng để ưu tiên và thiết kế các biện pháp giảm thiểu là bước khởi đầu của thực tiễn kỹ thuật và thiết kế an toàn.

Ngày nay, bảo mật không còn là tùy chọn nữa khi các hệ thống phần mềm trở thành một phần của các dịch vụ quan trọng đối với nhiều bộ phận của xã hội hiện đại. Việc coi trọng vấn đề bảo mật trong các hệ thống mà chúng ta thiết kế ngay từ đầu sẽ giúp chúng ta tiến gần hơn đến khả năng tin cậy tốt hơn vào phần mềm mà chúng tôi xây dựng và triển khai để đáp ứng nhu cầu của người dùng. Giành được lòng tin của khách hàng đã đủ khó và chỉ cần vi phạm một lần là mất đi phần lớn niềm tin.

Cách hình mẫu thiết kế hệ thống hiện đại

Với các khía cạnh trên, một số hình mẫu cho các hệ thống phân tán hiện đại đã xuất hiện để giải quyết một số khía cạnh này theo những cách khác nhau. Hãy khám phá một số mẫu thiết kế phổ biến hơn mà chúng ta thấy ngày nay liên quan đến năm khía cạnh của thiết kế hệ thống.

Microservices (Vi dịch vụ)

Microservices - Hình mẫu System Design hiện đại
Microservices – Hình mẫu System Design hiện đại

Với sự gia tăng của các hệ thống phân tán tập trung vào việc xây dựng độ tin cậy và quy mô thông qua dự phòng, hiệu quả và hiệu suất thông qua mở rộng theo chiều ngang và khả năng phục hồi thông qua việc tách các bộ phận của hệ thống thành các dịch vụ hoạt động độc lập, thuật ngữ “microservice” đã trở nên phổ biến nhờ đạt được những điều sau:

  • Ràng buộc việc phát triển, triển khai, vận hành và bảo trì các dịch vụ độc lập với các nhóm sở hữu các dịch vụ này trong một hoạt động kinh doanh lớn hơn. Chúng ta có thể làm điều này bằng cách phục vụ khách hàng bên ngoài trực tiếp hoặc gián tiếp thông qua khách hàng nội bộ thông qua API.
  • Cho phép microservice mở rộng quy mô độc lập theo nhu cầu.
  • Việc cung cấp dịch vụ thông qua một hợp đồng được xác định rõ ràng cho phép việc triển khai phát triển để duy trì dưới dạng một dịch vụ độc lập hoặc một hệ thống dịch vụ.

Nhìn qua các khía cạnh của chúng ta, microservice có các thuộc tính hấp dẫn, khiến nó trở thành một mô hình tốt để tuân theo nếu nó áp dụng cho trường hợp sử dụng:

  • Khả năng mở rộng: Các vi dịch vụ phi trạng thái (stateless microservices) thường được thiết kế để có thể mở rộng theo chiều ngang và cũng có thể hưởng lợi từ việc mở rộng theo chiều dọc. Trong trường hợp các microservice được triển khai trong môi trường điều phối được đóng gói (ví dụ: cụm Kubernetes), các dịch vụ này thậm chí có thể chạy trên cùng một nút mang lại khả năng sử dụng tốt hơn phần cứng hiện có và mở rộng quy mô theo nhu cầu với dung lượng khả dụng. Một nhược điểm là sự phức tạp khi triển khai khi một microservice phát triển về quy mô và mức độ quan trọng trong biểu đồ microservice.
  • Độ tin cậy: Các vi dịch vụ phi trạng thái thường được lưu trữ phía sau bộ cân bằng tải và được phân phối theo địa lý để tránh sự cố mất điện trong khu vực chiếm toàn bộ dung lượng của hệ thống. Một nhược điểm của việc xây dựng độ tin cậy với các vi dịch vụ phi trạng thái là hệ thống lưu trữ thường sẽ cần phải đáng tin cậy bằng hoặc hơn so với việc triển khai/thực thi vi dịch vụ. Khi đó, các vi dịch vụ có trạng thái phải chịu tác động tồi tệ nhất của cả hai phương pháp, trong đó chi phí cho độ tin cậy thường ở dạng cung cấp quá mức để xử lý các sự cố ngừng hoạt động tiềm ẩn.
  • Khả năng bảo trì: Các vi dịch vụ triển khai hợp đồng ổn định và được xác định rõ ràng được cung cấp thông qua API cho phép khách hàng lập trình dựa trên API đó và quá trình triển khai phát triển độc lập. Tuy nhiên, việc điều phối các thay đổi đối với API liên quan đến việc di chuyển ứng dụng khách và phối hợp giữa các nhóm có thể tốn kém, dẫn đến một giai đoạn vi dịch vụ có nhiều phiên bản được hỗ trợ tích cực cho đến khi ứng dụng khách cuối cùng di chuyển từ triển khai cũ hơn. Điều này chỉ trở nên tồi tệ hơn khi nhiều khách hàng bắt đầu tương tác với microservice.
  • Tính khả dụng: Microservices thường dựa vào môi trường triển khai và cơ sở hạ tầng bên ngoài để đáp ứng các yêu cầu về tính khả dụng của máy khách. Nhược điểm của điều này là sự phụ thuộc vào cơ sở hạ tầng cụ thể mà microservice được triển khai để cung cấp giải pháp có tính sẵn sàng cao. Các hệ thống như lưới dịch vụ và bộ cân bằng tải phần mềm trở thành những phần quan trọng của cơ sở hạ tầng không còn được kiểm soát bởi quá trình triển khai. Đây có thể là một điều tốt nhưng cũng có thể là một nguồn bảo trì liên tục vì các hệ thống này cũng có chu kỳ cập nhật và chi phí vận hành.
  • Bảo mật: Xác thực, Ủy quyền, Quản lý danh tính và Quản lý thông tin xác thực có thể được ủy quyền cho phần mềm trung gian hoặc thông qua các cơ chế bên ngoài (ví dụ: danh tính khối lượng công việc trong Kubernetes), trong đó việc triển khai microservice có thể tập trung vào việc tích hợp logic nghiệp vụ có liên quan. Nhược điểm, cũng như tính khả dụng, là các phần bên ngoài này của giải pháp trở thành các phần quan trọng của cơ sở hạ tầng mang lại chi phí vận hành của chính chúng khi triển khai vi dịch vụ.

Microservices là một cách tuyệt vời để chia nhỏ một ứng dụng lớn, nơi có thể xác định các phân vùng logic yêu cầu các miền độ tin cậy và tỷ lệ mở rộng của riêng chúng. Tuy nhiên, khi bắt đầu từ đầu, việc thiết kế các vi dịch vụ ngay từ đầu sẽ kém lý tưởng hơn vì nguy cơ chia nhỏ các dịch vụ thành các phần quá nhỏ. Chi phí liên lạc giữa các vi dịch vụ — thường là các yêu cầu HTTP hoặc gRPC — là đáng kể và chỉ phát sinh nếu cần thiết. Một cách tốt để xác định xem chức năng có phù hợp với một dịch vụ hay không bằng cách làm theo một phương pháp như Thiết kế hướng miền (Domain driven design) hoặc Phân rã chức năng (Functional decomposition).

Serverless (Không máy chủ)

Serverless - Hình mẫu System Design hiện đại
Serverless – Hình mẫu System Design hiện đại

Giống như trong các giải pháp dựa trên vi dịch vụ, việc sử dụng các triển khai serverless sẽ ủy quyền thêm các phần chính của chức năng phục vụ các yêu cầu tới cơ sở hạ tầng bên dưới. Nếu trong Microservices, dịch vụ được phục vụ bởi một quy trình liên tục, thì các giải pháp Serverless thường chỉ triển khai một điểm đầu vào để xử lý yêu cầu tới một điểm cuối (thường là URI qua HTTP hoặc gRPC). Trong triển khai Serverless, không có máy chủ thực tế nào được định cấu hình mà thay vào đó, môi trường triển khai sẽ tạo ra các tài nguyên cần thiết để xử lý các yêu cầu khi chúng đến. Đôi khi, các tài nguyên đó duy trì một thời gian để khấu hao chi phí đưa chúng lên, nhưng điều đó có nghĩa là là một chi tiết thực hiện.

Hãy xem qua các khía cạnh của thiết kế hệ thống để xem các giải pháp Serverless sắp xếp như thế nào:

  • Khả năng mở rộng: Các giải pháp serverless có khả năng mở rộng theo chiều ngang như microservice, nếu không muốn nói là hơn thế vì chúng được thiết kế có kích thước phù hợp theo yêu cầu. Nhược điểm của phương pháp này là cần có nhiều quyền kiểm soát hơn và ủy quyền đầy đủ chức năng mở rộng quy mô cho cơ sở hạ tầng Serverless bên dưới.
  • Độ tin cậy: Độ tin cậy của Serverless phụ thuộc vào khả năng mở rộng theo chiều ngang và định tuyến lưu lượng mạng. Điều này có nhược điểm tương tự như giải pháp Microservices.
  • Khả năng bảo trì: Việc triển khai serverless dễ bảo trì hơn vi dịch vụ do tập trung vào logic nghiệp vụ để xử lý các yêu cầu với bản soạn sẵn tối thiểu. Điều này có cùng vấn đề với quá trình phát triển API mà microservice gặp phải.
  • Tính khả dụng: Các triển khai Serverless có sẵn như môi trường mà chúng được triển khai. Điều này có cùng các vấn đề, với cơ sở hạ tầng cơ bản trở nên quan trọng hơn bản thân giải pháp.
  • Bảo mật: Việc triển khai Serverless hoàn toàn phụ thuộc vào cấu hình bảo mật của cơ sở hạ tầng bên dưới. Điều này có cùng một vấn đề, với cơ sở hạ tầng cơ bản trở nên quan trọng hơn so với chính giải pháp thực tế.

Các giải pháp không có máy chủ, hay Chức năng dưới dạng Dịch vụ, là một cách rất hấp dẫn để tạo nguyên mẫu và thậm chí triển khai các giải pháp cấp sản xuất bằng cách tập trung vào giá trị và logic kinh doanh, đồng thời để cơ sở hạ tầng cơ bản xử lý khả năng mở rộng, độ tin cậy và tính khả dụng của dịch vụ. Đó là một điểm khởi đầu điển hình để có được một giải pháp với gánh nặng vận hành tối thiểu và đối với hầu hết các nguyên mẫu, đó là một cách tuyệt vời để chứng minh giả thuyết của chúng tôi. Đây cũng là một trải nghiệm điển hình khi một khi các giải pháp này đạt đến giới hạn mở rộng quy mô, chi phí liên quan đến việc vận hành các giải pháp này sẽ trở nên đủ cao. Chúng được biến thành các triển khai vi dịch vụ tối ưu hơn được điều chỉnh theo quy mô cần thiết.

Event-driven (Hướng sự kiện)

Thiết kế hệ thống hướng sự kiện - Hình mẫu System Design hiện đại
Thiết kế hệ thống hướng sự kiện – Hình mẫu System Design hiện đại

Tuy nhiên, có một số lĩnh vực sự cố nơi mà việc xử lý giao dịch trực tuyến không được yêu cầu và các triển khai vi dịch vụ và không có máy chủ không hoàn toàn phù hợp với hóa đơn. Hãy xem xét các trường hợp xử lý giao dịch có thể được thực hiện trong nền hoặc khi có sẵn tài nguyên. Một trường hợp khác dành cho các hoạt động xử lý nền trong đó kết quả không nhất thiết phải có tính tương tác.

Các hệ thống hướng sự kiện tuân theo mô hình có một nguồn sự kiện (event source) và các bồn sự kiện (event sinks) – nơi các sự kiện (tin nhắn) đến từ đó và được gửi tương ứng. Quá trình xử lý lần lượt xảy ra từ người đăng ký và nhà xuất bản đến các source và sink này. Một ví dụ về hệ thống hướng sự kiện là một chatbot có thể tham gia vào nhiều thảo luận (event source và sinks) và xử lý tin nhắn khi chúng đến.

Các hệ thống hướng sự kiện phân tán có thể có nhiều trình xử lý tin nhắn đồng thời đang chờ trên cùng một nguồn, có khả năng xuất bản nhiều sink đóng vai trò là nguồn cho các trình xử lý tin nhắn khác. Mô hình kết nối các bộ xử lý với nhau thông qua source và sink được gọi là quy trình sự kiện (event pipeline). Thông thường, có một triển khai duy nhất cho các sink và source cung cấp giao diện hàng đợi tin nhắn và mở rộng theo nhu cầu về các tin nhắn đi qua hệ thống. Nhiều hệ thống quản lý hàng đợi phân tán cũng có thể hưởng lợi từ việc mở rộng quy mô theo đường chéo một cách hiệu quả, như Apache Kafka, RabbitMQ, v.v.

Hãy xem xét các hệ thống hướng sự kiện phân tán thông qua năm khía cạnh:

  • Khả năng mở rộng: Cả triển khai trung gian tin nhắn/sự kiện và trình xử lý thông báo đều có thể mở rộng độc lập. Một số nhược điểm xuất hiện khi có quá nhiều tin nhắn/sự kiện đang được xử lý và nhu cầu về trung gian sự kiện tăng vượt xa khả năng có sẵn trong hệ thống.
  • Độ tin cậy: Việc triển khai trình môi giới thông báo tốt mang lại mức độ tin cậy cao và bạn không nên tạo triển khai trình môi giới thông báo của riêng mình. Nhược điểm là sự phụ thuộc vào giải pháp đáp ứng nhu cầu về độ tin cậy của giải pháp (ví dụ: xử lý các giao dịch tài chính rất khác so với xử lý định tuyến nhắn tin tức thì trong phòng trò chuyện).
  • Khả năng duy trì: Nếu bạn sử dụng định dạng trao đổi tin nhắn linh hoạt như Bộ đệm giao thức, thì việc phát triển các bộ viết và đọc tin nhắn trong khi sử dụng cùng một ngôn ngữ mô tả dữ liệu là điều hợp lý. Điều này vẫn yêu cầu sự phối hợp, nhưng không khó bằng việc phát triển các hợp đồng API trên các hệ thống xử lý giao dịch trực tiếp (như trong các dịch vụ vi mô và triển khai không có máy chủ).
  • Tính khả dụng: Vì các tin nhắn thường được lưu trữ trong phương tiện lâu bền nên các hệ thống hướng sự kiện thường dễ dàng cung cấp hơn, đặc biệt vì chúng thường là các ứng dụng không tương tác. Chi phí khả dụng có thể đến từ các tin nhắn cũ và độ trễ xử lý hàng đợi không giới hạn.
  • Bảo mật: Các hệ thống hướng sự kiện phải quản lý tính khả dụng của dữ liệu độc lập với danh tính và thông tin đăng nhập. Việc đảm bảo rằng chỉ một số dịch vụ hoặc bộ xử lý tin nhắn nhất định mới có thể truy cập vào hàng đợi hoặc nhật ký tin nhắn cụ thể trở thành công việc toàn thời gian khi dữ liệu đa dạng hơn được chuyển thẳng qua hệ thống.

Kết

Software engineering hiện đại đòi hỏi phải thiết kế các hệ thống có thể mở rộng, đáng tin cậy, có thể bảo trì, khả dụng và an toàn. Việc thiết kế các hệ thống phân tán đòi hỏi sự nghiêm ngặt đáng kể vì thực tế phức tạp của hệ thống hiện đại ngày càng tăng cùng với nhu cầu của xã hội về các dịch vụ phần mềm tốt hơn. Chúng ta đã xem xét ba hình mẫu thiết kế hiện đại cho các hệ thống phân tán và làm việc thông qua năm khía cạnh của các hệ thống được thiết kế tốt.

Là kỹ sư phần mềm, chúng ta chịu trách nhiệm thiết kế các hệ thống giải quyết các mối quan tâm chính của hệ thống phân tán trong thời hiện đại.

Nguồn: Dean Michael Berris

Categories
Gambaru News

Vượt qua cơn nghiện công nghệ

Trong bộ phim tài liệu The Social Dilemma của Netflix, các chuyên gia công nghệ giải thích bản chất gây nghiện có chủ ý của mạng xã hội và điện thoại thông minh. Giống như các ảo thuật gia sân khấu, những công nghệ này khai thác những điểm yếu trong các đặc điểm tiến hóa của tâm trí chúng ta.

Thủ thuật của các ảo thuật gia thành công nhờ việc tận dụng các điểm mù của chúng ta. Tương tự như vậy, các công ty công nghệ nhắm vào những ‘sai sót’ trong tâm trí con người để tác động đến sự chú ý và hành động của hàng tỷ người.

Các công ty được khuyến khích làm điều này vì họ kiếm tiền từ việc hiển thị quảng cáo, vì vậy họ được trả tiền để khiến chúng ta nghiện. Chúng ta dành nhiều thời gian hơn trên nền tảng của họ và cung cấp cho họ dữ liệu của mình để họ có thể phân phát quảng cáo tùy chỉnh và sinh lợi hơn.

Tại sao chúng ta trở nên nghiện công nghệ?

Làm thế nào để họ giữ cho chúng ta nghiện?

Tại sao chúng ta nghiện công nghệ?
Tại sao chúng ta nghiện công nghệ?

Họ dựa vào dopamine – “hormone phần thưởng”. Giống như những chú chó của Pavlov, chúng ta dự đoán phần thưởng khi nghe thấy điều gì đó liên quan đến nó, chẳng hạn như âm thanh thông báo và phản hồi tương ứng.

Mức độ dopamine có thể cao gấp đôi khi dự đoán phần thưởng so với khi thực sự nhận được nó. Và dopamine liên quan đến khả năng tập trung, lên kế hoạch trước và quyết định hành động của chúng ta. Vì vậy, kiểm soát dopamine có nghĩa là kiểm soát hành vi của chúng ta.

Nhà tâm lý học B.F. Skinner đã chỉ ra rằng những phần thưởng không thể đoán trước dễ gây nghiện hơn những phần thưởng có thể đoán trước được. Ông thưởng cho những con chuột khi nhấn cần gạt, và những con đôi khi được thưởng nhiều hơn và đôi khi không được thưởng gì cả nhấn cần gạt một cách điên cuồng hơn những con lần nào cũng được thưởng như nhau.

Phần thưởng có thể đoán trước sẽ xây dựng lòng khoan dung; não giải phóng dopamine để nhận những phần thưởng bất ngờ. Mối liên hệ với các trò chơi trên điện thoại thông minh và máy đánh bạc là quá rõ ràng. Liên tục kiểm tra tin nhắn mới cũng là một ví dụ về hiệu ứng này: Đôi khi không có tin nhắn nào, và đôi khi có tin nhắn đặc biệt thú vị.

Nhiều trò chơi sử dụng các chu kỳ tương tác và phần thưởng (thường là phần thưởng thay đổi) để tạo hành vi gây nghiện và hình thành thói quen. Các ứng dụng non-gaming cũng sử dụng thủ thuật game hóa (gamification) để khai thác điều này (hãy xem xét những chiến tích liên tục của Duolingo hoặc các thử thách và giải đấu trong các ứng dụng thể dục).

Các xu hướng nhận thức khác mà các ứng dụng này khai thác bao gồm FOMO (sợ bị bỏ lỡ) và ác cảm mất mát. Bạn phải tiếp tục chơi thường xuyên nếu không bạn sẽ mất đá quý và tiến trình đã lưu!

Các công ty công nghệ cũng học hỏi từ hành vi của người dùng:

Họ quan sát nơi người dùng rời khỏi ứng dụng để họ có thể bổ sung những phần đó và khiến chúng trở nên gây nghiện hơn, đồng thời họ sử dụng dữ liệu của bạn để phân khúc đối tượng và tìm ra thủ thuật nào hiệu quả nhất với những người như bạn.

Vượt qua chứng nghiện công nghệ

Mọi người đều có thể hưởng lợi từ việc áp dụng các nguyên tắc của phương pháp trị liệu hiện đại như CBT (liệu pháp hành vi nhận thức – cognitive behavioral therapy) để quan sát mối liên hệ giữa cảm xúc, suy nghĩ và hành vi—đồng thời làm gián đoạn và kiểm soát chúng. Bằng cách kiểm soát các quá trình này, bạn có thể sắp xếp lại các kết nối trong não của mình từ phục vụ mục đích của tổ tiên tiến hóa của bạn—hoặc các công ty công nghệ—sang phục vụ mục đích của bạn.

Theo CBT, bộ não của chúng ta tuân theo một chương trình nhận thức: Đầu vào bên ngoài → phản ứng cảm xúc → suy nghĩ → hành vi. Nếu bạn muốn thay đổi một hành vi—chẳng hạn như nghiện công nghệ—bạn cần giải quyết các yếu tố đầu vào, cảm xúc và suy nghĩ dẫn đến hành vi đó.

Đây là một ví dụ:

Tôi không có bất kỳ kế hoạch xã hội nào vào cuối tuần này (đầu vào) → Tôi cảm thấy buồn và cô đơn (cảm xúc) → Điều này là do không ai thích tôi và tôi nhàm chán (nghĩ) → Để thoát khỏi những cảm xúc và suy nghĩ này, tôi say mê mạng xã hội hoặc trò chơi điện tử (hành vi).

Những cảm xúc dẫn đến hành vi nghiện công nghệ

Để phá vỡ vòng luẩn quẩn này và giành lại quyền kiểm soát, hãy cố gắng để ý những cảm xúc nào dẫn đến hành vi không mong muốn. Ghi nhật ký có hệ thống có thể giúp ích cho việc này.

Chúng ta thường rơi vào một hành vi gây nghiện một cách vô thức để tránh đối mặt với cảm xúc. Những cảm xúc có thể rất đa dạng, chẳng hạn như buồn chán, buồn bã, lo lắng, tức giận, sợ hãi, thất vọng và căng thẳng. Ví dụ, cảm giác thèm dùng mạng xã hội của tôi chủ yếu nảy sinh vào buổi sáng trước khi đi làm và càng tệ hơn nếu tôi phải tương tác với mọi người vào ngày hôm đó, đặc biệt nếu tôi phải nói chuyện trước một đám đông lớn. Vì vậy, tôi xác định cảm xúc của mình là lo lắng xã hội.

Đôi khi, chỉ cần đặt tên cho một cảm xúc là đủ để giải giáp nó và cho phép bộ não hợp lý của bạn tự khẳng định lại chính nó. Những lần khác, bạn sẽ cần giải quyết những suy nghĩ liên kết cảm xúc với hành vi.

Giải quyết những suy nghĩ méo mó

Bộ não của bạn tạo ra những suy nghĩ để giải thích cảm xúc và hướng dẫn hành vi đáp lại. Điều này rất hữu ích trong môi trường thời cổ: Tôi nghe thấy tiếng động (đầu vào) → Tôi cảm thấy sợ hãi (cảm xúc) → Đây có thể là một con vật nguy hiểm (suy nghĩ) → Tôi cần chạy trốn (hành vi).

Nhưng đôi khi những suy nghĩ mà bộ não của chúng ta nghĩ ra lại bị bóp méo và phi lý. Ví dụ:

  • Chúng ta khái quát hóa quá mức (“Nếu một người cho rằng tôi ngu ngốc, thì mọi người cũng sẽ như vậy.”);
  • Chúng ta tập trung vào những chi tiết tiêu cực nhỏ hơn là bức tranh lớn (“Thành tích tốt của tôi năm nay không thành vấn đề; tôi đã mất một khách hàng này.”);
  • Chúng ta loại bỏ những trải nghiệm tích cực vì những lý do phi lý (“Sếp của tôi chỉ khen tôi vì thương hại.”); hoặc
  • Chúng ta đi đến những kết luận tiêu cực, vô căn cứ (“Nếu khách hàng này không trả lời hôm nay, anh ta hẳn không quan tâm.”).

Khi bạn đã xác định được suy nghĩ liên kết cảm xúc với hành vi, hãy thẩm vấn suy nghĩ đó. Những câu hỏi hay để hỏi là:

  • Suy nghĩ này có thực tế không?
  • Nó dựa trên sự thật hay cảm xúc?
  • Bằng chứng cho suy nghĩ này là gì?
  • Tôi có thể giải thích sai bằng chứng?

Trong trường hợp của tôi, chứng lo âu xã hội của tôi đã thúc đẩy những suy nghĩ như:

  • Mọi người sẽ không thích tôi; họ sẽ cười nhạo tôi;
  • Tôi sẽ trông ngu ngốc; và họ sẽ không bao giờ muốn nói chuyện với tôi nữa.

Và hành vi kết quả của tôi là chứng minh sự nổi tiếng của mình bằng cách chạy theo lượt thích trên mạng xã hội.

Tôi bác bỏ những suy nghĩ méo mó của mình bằng bằng chứng. Ví dụ:

  • Mọi người thích các cuộc hội thảo của tôi;
  • Tôi thường xuyên nhận được phản hồi chúc mừng của khán giả.
  • Sếp của tôi chưa bao giờ phàn nàn về kỹ năng giao tiếp của tôi.

Đó là nhận thức của riêng tôi về hiệu suất của tôi đã bị bóp méo.

Sau khi tôi xác định và đánh giá lại những suy nghĩ méo mó của mình, bộ não của tôi nhận ra hành vi gây nghiện là vô nghĩa và tôi có thể dừng lại một cách dễ dàng. Thực hành bài tập này đã dần dần rèn luyện bộ não của tôi không nghĩ đến những suy nghĩ méo mó này ngay từ đầu. Tôi khuyến khích bạn làm theo cách tiếp cận tương tự.

Tham khảo: Pascal Bornet (Forbes)

Categories
All about Japan

32% Sinh viên ở Nhật sử dụng ChatGPT: khảo sát cho thấy

Theo khảo sát gần đây của một nhóm nghiên cứu Nhật Bản, có khoảng 32% sinh viên đại học được khảo sát cho biết họ đã sử dụng chatbot trí tuệ nhân tạo ChatGPT, trong đó nhiều người nói rằng nó giúp tăng cường khả năng tư duy của họ.

Cuộc khảo sát trực tuyến cho thấy ChatGPT được sinh viên các khoa khoa học, công nghệ và nông nghiệp sử dụng nhiều nhất, với tỷ lệ chung là 45,5% và nhiều hơn nữa bởi nam giới, với tỷ lệ 44,8%, so với nữ giới, với tỷ lệ 27,1%.

Được thực hiện từ ngày 24/5 đến ngày 2/6, khảo sát đã nhận được phản hồi từ 4.000 sinh viên đang theo học tại các trường đại học trên toàn quốc. Nó được tiến hành trong bối cảnh ngày càng có nhiều lo ngại rằng việc sử dụng ChatGPT có thể ảnh hưởng đến kỹ năng tư duy phản biện và khả năng sáng tạo của sinh viên.

32% Sinh viên ở Nhật sử dụng ChatGPT
32% Sinh viên ở Nhật sử dụng ChatGPT. Ảnh: KyodoNews

ChatGPT được sử dụng bởi 33,0% tổng số sinh viên trong các khoa nhân văn, khoa học xã hội và giáo dục, và 21,2% trong các khoa y, nha khoa và dược học.

Khảo sát cho thấy khoảng 14% số người được hỏi đã sử dụng ChatGPT để viết báo cáo và các khóa học khác, với 91,8% kiểm tra để đảm bảo rằng văn bản được tạo là chính xác hoặc thực hiện các điều chỉnh khác.

Khi được hỏi liệu việc sử dụng ChatGPT có ảnh hưởng tích cực hay tiêu cực đến khả năng tư duy của họ hay không, tổng cộng 70,7% cho biết điều đó là tích cực hoặc phần nào như vậy, trong khi 15,4% cho biết điều đó là tiêu cực hoặc phần nào như vậy.

Được phép nêu ý kiến ​​của họ về ChatGPT trong phần nhận xét, một số người cho biết nên cấm sử dụng công cụ AI để nộp bài để đảm bảo đánh giá công bằng trong khi những người khác phản đối lệnh cấm chung.

Fujio Omori, giáo sư tại Đại học Tohoku chuyên về chính sách giáo dục và là thành viên của nhóm nghiên cứu, cho biết cuộc khảo sát cho thấy sinh viên nhìn chung đang xác minh thông tin mà ChatGPT cung cấp cho họ và tiếp tục tự suy nghĩ.

Nhưng trước những lo ngại rằng sinh viên có thể chỉ cần sao chép và dán văn bản do ChatGPT tạo ra cho bài tập của họ, Omori nói thêm rằng các trường đại học nên xem xét chuyển từ việc chỉ đánh giá sinh viên về công việc họ làm bên ngoài lớp học “đồng thời khám phá các cách sử dụng ChatGPT hiệu quả.”

ChatGPT, một công cụ AI tổng hợp do công ty công nghệ OpenAI của Hoa Kỳ phát triển, được đào tạo bằng cách sử dụng lượng dữ liệu khổng lồ từ internet, cho phép nó xử lý và mô phỏng các cuộc trò chuyện giống con người với người dùng. Nó đưa ra câu trả lời dựa trên hướng dẫn và câu hỏi của người dùng.

Nguồn: KyodoNews.

Categories
Gambaru News

Unreal Engine: Không chỉ là phát triển Game

Unreal Engine nổi lên như một cường quốc phát triển trò chơi, cách mạng hóa ngành công nghiệp game với các tính năng tiên tiến và khả năng hiển thị. Tuy nhiên, tác động của nó đã vượt xa việc chơi game.

Trong bài này, chúng ta sẽ khám phá tính linh hoạt đáng kinh ngạc của Unreal Engine và đi sâu vào vô số khả năng mà nó mang lại không chỉ ở lĩnh vực phát triển game. Từ trực quan hóa kiến trúc đến sản xuất ảo, hãy khai thác tiềm năng vô hạn của Unreal Engine!

Các lĩnh vực mà Unreal Engine có thể tác động đến

Ấy, khoan vội đọc tiếp đã. Ngày 22.07 Gamba tổ chức Offline event (Game Series #01), với chủ đề UNREAL ENGINE & Game Development World Trend 2024, với sự có mặt của hơn 50 thành viên trong cộng đồng Gamba for GAME và anh Hân Lê, CEO của Galasta Studio, speaker của buổi này.

Mời bạn đăng ký và tham gia: Gambaru | [OFFLINE] Game Series #01 – Unreal Engine and Game Development World Trends in 2024

Unreal Engine & Game Development World Trend 2024
Unreal Engine & Game Development World Trend 2024

1. Diễn họa kiến trúc

Diễn hoạ kiến trúc
Diễn hoạ kiến trúc. Ảnh: Unreal Engine

Khả năng kết xuất thời gian thực của Unreal Engine biến nó trở thành một công cụ lý tưởng để trực quan hóa kiến trúc (architectural visualization).

Kiến trúc sư và nhà thiết kế có thể tạo môi trường ảo nhập vai cho phép khách hàng trải nghiệm không gian trước khi chúng được xây dựng.

Với sức mạnh của Unreal Engine, bạn có thể hiển thị hình ảnh chân thực, mô phỏng điều kiện ánh sáng và thậm chí kết hợp các yếu tố tương tác như hướng dẫn và thao túng đối tượng động.

Mức độ chi tiết và tính tương tác do Unreal Engine cung cấp giúp nâng cao quy trình thiết kế và tạo điều kiện giao tiếp hiệu quả giữa các bên liên quan.

2. Sản xuất phim điện ảnh và truyền hình

Sản xuất phim và truyền hình
Sản xuất phim và truyền hình. Ảnh: Unreal Engine

Unreal Engine đã có những bước tiến đáng kể vào ngành công nghiệp điện ảnh và truyền hình, cách mạng hóa cách thức sản xuất nội dung.

Với khả năng sản xuất ảo, các nhà làm phim có thể tạo bối cảnh, môi trường và thậm chí cả nhân vật ảo.

Các tính năng kết xuất thời gian thực và tổng hợp nâng cao của Unreal Engine cho phép các đạo diễn trực quan hóa các cảnh trong thời gian thực, thực hiện các điều chỉnh tức thời và giảm chi phí hậu sản xuất.

Ngoài ra, sản xuất ảo bằng Unreal Engine mở ra khả năng cho trải nghiệm thực tế hỗn hợp và tích hợp hành động trực tiếp, mở rộng ranh giới của cách kể chuyện và hiệu ứng hình ảnh.

3. Trải nghiệm thực tế ảo (VR)

Trải nghiệm thực tế ảo (VR)
Trải nghiệm thực tế ảo (VR). Ảnh: Unreal Engine

Unreal Engine là một công cụ mạnh mẽ để tạo trải nghiệm thực tế ảo sống động.

Cho dù đó là mô phỏng đào tạo, ứng dụng giáo dục hay tham quan ảo, Unreal Engine cung cấp các công cụ và quy trình công việc cần thiết để xây dựng nội dung VR hấp dẫn.

Với hình ảnh có độ trung thực cao, vật lý thực tế và các yếu tố tương tác, Unreal Engine cho phép các nhà phát triển đưa người dùng đến thế giới ảo có cảm giác đắm chìm thực sự.

Việc tích hợp tính năng theo dõi chuyển động và phản hồi xúc giác giúp nâng cao hơn nữa cảm giác hiện diện, biến Unreal Engine trở thành nền tảng phù hợp để tạo ra trải nghiệm VR khó quên.

4. Ứng dụng thực tế tăng cường (AR)

Ứng dụng thực tế tăng cường (AR)
Ứng dụng thực tế tăng cường (AR). Ảnh: Unreal Engine

Unreal Engine cũng trao quyền cho các nhà phát triển để tạo ra các ứng dụng thực tế tăng cường hấp dẫn.

Với tích hợp ARKit và ARCore, Unreal Engine cung cấp khuôn khổ để phát triển trải nghiệm AR kết hợp nội dung kỹ thuật số với thế giới thực.

Từ các cuộc trình diễn sản phẩm tương tác đến các trò chơi AR dựa trên vị trí, các khả năng là rất lớn.

Hệ thống vật lý mạnh mẽ, trình chỉnh sửa tài liệu tiên tiến và khả năng kết xuất thời gian thực của Unreal Engine đảm bảo rằng nội dung AR tích hợp liền mạch vào môi trường của người dùng, tạo ra trải nghiệm thực sự đắm chìm và hấp dẫn.

5. Mô phỏng và Đào tạo

Mô phỏng và đào tạo
Mô phỏng và đào tạo. Ảnh: Unreal Engine

Khả năng mô phỏng của Unreal Engine làm cho nó trở thành một công cụ có giá trị cho mục đích đào tạo và giáo dục.

Cho dù đó là mô phỏng chuyến bay, mô phỏng đào tạo y tế hay mô phỏng máy móc công nghiệp, Unreal Engine đều cung cấp một môi trường chân thực và nhập vai cho người học.

Mô phỏng vật lý của động cơ, khả năng AI và các yếu tố tương tác cho phép các nhà phát triển tạo ra các kịch bản đào tạo năng động bắt chước các điều kiện trong thế giới thực.

Với Unreal Engine, các tổ chức có thể cung cấp trải nghiệm đào tạo hiệu quả về chi phí và không có rủi ro, giúp tăng cường học tập và phát triển kỹ năng.

6. Triển lãm và Sắp đặt Tương tác

Triển lãm và sắp đặt tương tác
Triển lãm và sắp đặt tương tác. Ảnh: Unreal Engine

Các tính năng kết xuất và tương tác thời gian thực của Unreal Engine làm cho nó trở thành một lựa chọn tuyệt vời để tạo các triển lãm và cài đặt tương tác.

Các bảo tàng, phòng trưng bày nghệ thuật và các tổ chức văn hóa có thể tận dụng Unreal Engine để tạo ra những trải nghiệm sống động thu hút khách tham quan ở một cấp độ hoàn toàn mới.

Từ nghệ thuật sắp đặt tương tác đến tái tạo lịch sử, Unreal Engine cung cấp các công cụ để kết hợp nội dung kỹ thuật số với không gian vật lý, cho phép người dùng khám phá, học hỏi và tương tác theo những cách độc đáo và đáng nhớ.

7. Tạo nguyên mẫu và trực quan hóa sản phẩm

Tạo nguyên mẫu và trực quan hoá sản phẩm
Tạo nguyên mẫu và trực quan hoá sản phẩm. Ảnh: Unreal Engine

Unreal Engine có thể thay đổi cuộc chơi khi nói đến tạo mẫu và trực quan hóa sản phẩm.

Các nhà thiết kế và kỹ sư có thể tạo các mô hình 3D tương tác của sản phẩm, cho phép các bên liên quan trực quan hóa và tương tác với chúng trong thời gian thực.

Điều này có thể giúp hợp lý hóa quy trình thiết kế, thu thập phản hồi có giá trị và đưa ra quyết định sáng suốt trước khi chuyển sang giai đoạn sản xuất.

Mô phỏng vật lý và hình ảnh chất lượng cao của Unreal Engine đảm bảo mô tả sản phẩm chân thực, tăng cường giao tiếp và giảm các bước lặp tốn kém.

8. Phòng trưng bày ảo và Trải nghiệm bán lẻ

Phòng trưng bày ảo và trải nghiệm bán lẻ
Phòng trưng bày ảo và trải nghiệm bán lẻ. Ảnh: Unreal Engine

Với sự phát triển của thương mại điện tử, việc tạo ra trải nghiệm mua sắm trực tuyến hấp dẫn đã trở nên quan trọng. Unreal Engine cho phép phát triển các phòng trưng bày ảo và trải nghiệm bán lẻ làm mờ ranh giới giữa thế giới thực và thế giới kỹ thuật số.

Khách hàng có thể khám phá các cửa hàng ảo, tương tác với các sản phẩm và thậm chí dùng thử chúng trên mạng ảo bằng cách sử dụng thực tế tăng cường.

Độ trung thực về hình ảnh và tính tương tác của Unreal Engine làm cho trải nghiệm mua sắm trở nên sống động và được cá nhân hóa hơn, thu hẹp khoảng cách giữa bán lẻ truyền thống và bán lẻ trực tuyến.

Tóm lại, Unreal Engine vượt xa nguyên thuỷ của nó trong việc phát triển game, trao quyền cho người sáng tạo trong các ngành để vượt qua ranh giới và tạo ra trải nghiệm có tác động.

Cho dù đó là hình ảnh kiến trúc, sản xuất phim, tạo mẫu sản phẩm, phòng trưng bày ảo, quy hoạch đô thị hay trò chơi nghiêm túc, tính linh hoạt và các tính năng tiên tiến của Unreal Engine khiến nó trở thành nền tảng dành cho những người muốn xác định lại cách chúng ta hình dung, tương tác và học hỏi.

Vì vậy, cho dù bạn là nhà phát triển trò chơi hay nhà đổi mới trong lĩnh vực khác, hãy cân nhắc khai thác sức mạnh của Unreal Engine để cách mạng hóa ngành của bạn!

Tham khảo: Nikhil Malankar

Categories
Designer/Artist's Corner Gambaru News

Các thuật ngữ trong phát triển game (game developement)

Tìm hiểu hoặc đọc các bài viết trong lĩnh vực phát triển game (game development), điển hình là bài viết Cách vận hành quy trình phát triển game, tôi đụng phải khá nhiều thuật ngữ khó hiểu trong ngành, không chỉ ở việc từ đó có nghĩa là gì, mà nên dịch nó ra tiếng Việt như thế nào.

Dựa trên nhu cầu nắm bắt cách thuật ngữ trong lĩnh vực game, bài viết này xin chia sẻ đến bạn một số thuật ngữ phổ biến mà bạn sẽ nghe thấy trong sự nghiệp của mình với vai trò một game developer (nhà phát triển trò chơi).

Các thuật ngữ phát triển game phổ biến

Các thuật ngữ thường dùng nhưng không phải ai cũng hiểu trong Game Development
Các thuật ngữ thường dùng nhưng không phải ai cũng hiểu trong Game Development

AAA (Triple-A): Các game được tạo và phát hành thường bởi các nhà xuất bản cỡ trung bình hoặc lớn; thường là bất cứ thứ gì không thể được phân loại là “indie”.

Agent: Một nhân vật hoặc đối tượng trong game sử dụng AI để tương tác với các đối tượng khác trong môi trường của nó.

AI: Trí tuệ nhân tạo; một thực thể trong game có chức năng phụ thuộc vào code máy tính hơn là đầu vào của con người. NPC là những thực thể AI phổ biến.

Alpha: Một phiên bản game chứa tất cả các tính năng chính và hầu hết nội dung. Phiên bản này thường được lưu hành nội bộ để kiểm tra chất lượng và lỗi.

AR / VR / MR / XR: Thực tế tăng cường / ảo / hỗn hợp / mở rộng. 

Asset (Nội dung): Gọi tắt cho bất kỳ thứ gì có trong video game – nhân vật, đồ vật, hiệu ứng âm thanh, bản đồ, môi trường, v.v.

Baking: Một phương pháp tiền xử lý thực hiện trên asset và dữ liệu game để đảm bảo chúng tải và hoạt động tốt trong thời gian thực, đồng thời không làm chậm quá trình chơi do yêu cầu nhiều dung lượng bộ xử lý hoặc GPU.

Balance (Cân bằng): Tạo trải nghiệm chơi game ổn định và có thể dự đoán được. Ví dụ: bằng cách đảm bảo vũ khí gây sát thương thích hợp và áo giáp hấp thụ sát thương đầy đủ, trái ngược với việc cung cấp cho một vũ khí sức mạnh đáng sợ hơn những vũ khí khác hoặc bằng cách làm cho các cấp độ trở nên quá khó hoàn thành. Tuy nhiên, lối chơi mất cân bằng đôi khi được thực hiện có chủ đích.

Beta: Phiên bản game có chứa tất cả các tính năng và nội dung chính. Phiên bản này không có lỗi lớn và đang trong quá trình phát hành mã. Các bản beta đôi khi được phát hành giới hạn cho công chúng để nhận báo cáo lỗi và phản hồi quan trọng.

Bug (Lỗi): Bất kỳ vấn đề phát triển nào khiến game trở nên không thú vị, không ổn định hoặc không thể chơi được ở trạng thái hiện tại.

Build (Bản dựng): Biệt ngữ dành cho “phiên bản” của game. Còn được gọi là “release” hoặc “release candidate”

Cert (Chứng nhận). Quá trình theo đó các nhà sản xuất bảng điều khiển kiểm tra khả năng tương thích của game với phần cứng và nền tảng phân phối của họ.Không bao gồm chơi thử (playtesting) hoặc đảm bảo chất lượng.

Cinematics/cutscenes (Đoạn phim/đoạn cắt cảnh): Các phân đoạn của game không do người chơi điều khiển. Thường được sử dụng để thu hút sự chú ý đến các điểm chính của câu chuyện.

Clipping: Quá trình xác định trước các khu vực nhất định trong game mà quá trình kết xuất diễn ra, giúp tối ưu hóa hiệu suất trò chơi trong các khu vực đã chọn đó.

Clipping region (Vùng cắt): Một vùng của trò chơi được tối ưu hóa để hiển thị GameObject và địa hình.

Code (Mã): Ngôn ngữ máy tính được sử dụng để tạo và xác định chức năng trong phần mềm. Chẳng hạn, Unity sử dụng C# (C Sharp) để code game.

Code release (Phát hành mã): Phiên bản game đã sẵn sàng để gửi đến các nhà sản xuất bảng điều khiển để chứng nhận.

Collision (Va chạm): Hành động của hai vật thể đến gần nhau và chạm/đập vào nhau trong game. Hành động đơn giản để nhân vật điều khiển của bạn đứng trên sàn trong một ngôi nhà yêu cầu các thông số va chạm ở cả bàn chân của nhân vật và sàn nhà, nếu không, nhân vật đó sẽ đơn giản rơi xuống sàn.

Colission detection (Phát hiện va chạm): Một quy trình xác định khi nào và ở đâu một đối tượng sẽ “va chạm” với một đối tượng khác trong trò chơi. Điều này thường được thực hiện bằng cách sử dụng một đối tượng được gọi là hitbox sẽ ngăn va chạm hoặc quyết định khu vực nào cần tiếp cận để tạo va chạm.

Console: Một loại máy tính cá nhân được thiết kế đặc biệt để chơi game. Sony PlayStation, Microsoft Xbox và Nintendo Switch đều là những ví dụ về console.

Content (Nội dung): Mọi thứ tạo nên trò chơi của bạn, chẳng hạn như nội dung, thành phần, GameObject và tập lệnh.

Cross-platform (Đa nền tảng): Thứ gì đó có thể hoạt động hoặc được sử dụng trên các nền tảng khác nhau.

Culling: Việc phát hiện, cách ly và từ chối mọi dữ liệu không cần thiết trong thiết kế trò chơi.

Debug (Gỡ lỗi): Tìm và loại bỏ lỗi trong trò chơi. Đôi khi được gọi là “bug-bashing.”

Demo: Phiên bản thử nghiệm của game, thường được phát hành ra công chúng cho mục đích quảng cáo và/hoặc phản hồi.

Dev: Tiếng lóng của “developer” (nhà phát triển) hoặc “development” (phát triển)

Development (Phát triển): Xem Game development.

Edge (Cạnh): Đoạn nối giữa hai đỉnh của một góc.

Engine: Xem game engine.

Event (Sự kiện): Một hành động game được hoàn thành thông qua đầu vào của người dùng. Khi người chơi nhấn một nút trên bộ điều khiển của họ và nhân vật trên màn hình nhảy lên, đây được coi là một sự kiện.

Feature (Tính năng): Bất kỳ khía cạnh nào của trò chơi tạo ra giá trị và mục đích của nó. Cơ chế, câu chuyện và thiết kế cấp độ đều được coi là các tính năng.

Game desgin document (GDD – Tài liệu thiết kế game): Một tài liệu chuyên nghiệp do các nhà phát triển game tạo ra để xác định đầy đủ và biện minh cho trò chơi mà họ đã tạo hoặc dự định tạo, thường là một phần trong quảng cáo chiêu hàng của họ với nhà xuất bản. Cốt truyện, lối chơi, nhân vật, thiết kế cấp độ và các phần không thể thiếu khác của trò chơi được trình bày và mô tả trong tài liệu thiết kế trò chơi.

Game designer (Nhà thiết kế game): Người thiết kế tính thẩm mỹ và cấu trúc của game. LƯU Ý: Các thuật ngữ “nhà thiết kế game” và “nhà phát triển game” thường được sử dụng thay thế cho nhau, mặc dù hai vai trò này khác nhau về mặt kỹ thuật.

Game developer (Nhà phát triển game): Người biến thiết kế game thành game có thể chơi được thông qua lập trình và tạo nội dung trong công cụ. 

Game development (Phát triển game): Hành động tạo trò chơi; đôi khi được gọi là “gamedev.” Quá trình phát triển trò chơi thường yêu cầu đầu vào từ một hoặc nhiều nhà thiết kế trò chơi, nghệ sĩ, lập trình viên, họa sĩ hoạt hình, người thử nghiệm, quản lý dự án, v.v., mặc dù một số trò chơi chỉ do một hoặc hai nhà phát triển trò chơi tạo ra.

Game engine (Công cụ trò chơi): Phần mềm cung cấp bộ công cụ và tính năng cho nhà phát triển trò chơi để xây dựng trò chơi của họ một cách chuyên nghiệp và hiệu quả.

Gold master: Một game đáp ứng tất cả các yêu cầu của nhà phát hành và nền tảng, bao gồm tất cả nội dung và tính năng, đồng thời được coi là đã sẵn sàng ra mắt.

Hitbox: Một đối tượng vô hình được tạo xung quanh một GameObject khác để xác định khu vực sẽ xảy ra va chạm với các đối tượng khác.

Keyframe (Tạo khung hình chính): Trong quá trình phát triển game, hành động đưa nội dung vào một khung hành động độc lập và ghi lại khoảnh khắc đó, để những người khác theo dõi, cho đến khi có một loạt các khung này để truyền tải hoạt ảnh của nội dung một cách hiệu quả.

Lightmap: Một hệ thống ánh sáng kết xuất trước được lưu trữ để sử dụng liên tục trong trò chơi.

Localization (Bản địa hóa): Dịch trò chơi sang nhiều ngôn ngữ.

Mechanics (Cơ chế): Các chức năng, quy tắc và kết quả thiết yếu tạo nên lối chơi. Cơ chế là những gì làm cho một game bổ ích, giải trí và tương tác.

Mesh (Lưới): Tập hợp các đỉnh, cạnh và mặt đóng vai trò là nền tảng của mô hình trong trò chơi điện tử.

Mobile (Di động): Một thiết bị cầm tay có khả năng tính toán của một máy tính cá nhân và các tính năng dành cho liên lạc thoại và dữ liệu thời gian thực.

Mobile gaming (Chơi game trên di động): Bởi bạn có thể chơi trò chơi trên thiết bị di động ở hầu hết mọi nơi nên game trên di động là một trong những hình thức chơi game phổ biến nhất trên thế giới.

Model (Mô hình): Nội dung 3D đầy đủ trong video game được tạo bằng cách thêm họa tiết và các tính năng khác vào lưới.

Multiplatform (Đa nền tảng): Tương thích với nhiều loại phần cứng hoặc hệ điều hành.

Parallax (Thị sai): Một kỹ thuật được sử dụng trong phát triển game 2D trong đó hình ảnh nền di chuyển ở tốc độ khác so với các đối tác tiền cảnh của chúng trong quá trình di chuyển của người chơi/cảnh, tạo ra độ sâu và tỷ lệ.

PC: Viết tắt của máy tính cá nhân, thường đề cập đến máy tính để bàn hoặc máy tính xách tay. Nhiều người đam mê game thích chơi trên PC hơn bảng điều khiển hoặc trên di động do khả năng hiệu suất và các tùy chọn tùy chỉnh tăng lên.

Physics (Vật lý): Sử dụng các định luật vật lý thực tế trong trò chơi để làm cho chuyển động và hành vi môi trường thực tế hơn.

Pixel: Khối xây dựng nhỏ nhất của hình ảnh màn hình; một điểm sáng hoặc màu duy nhất, khi được kết hợp với các điểm ảnh khác, sẽ tạo thành một hình ảnh hoặc thành phần đồ họa lớn hơn.

Pixel art: Một phong cách thiết kế thường giới hạn ở đồ họa 8 và 16 bit để phù hợp chặt chẽ với đồ họa arcade và console cổ điển.

Playtesting (Chơi thử): Chơi qua từng bản dựng mới của trò chơi để tìm lỗi, đảm bảo quá trình chơi trò chơi và khám phá các cơ hội tiềm năng để cải thiện.

Polygon (Đa giác): Một loạt các đường được lập trình bằng máy tính tạo thành một đối tượng ba chiều (3D).

Prop (Đạo cụ) : Các đối tượng tương tác trong trò chơi.

Prototyping (Nguyên mẫu): Tạo các phiên bản ban đầu khác nhau của game để khám phá các cơ chế và tính năng khác nhau nhằm quyết định phiên bản nào sẽ tốt nhất cho toàn bộ game.

Quality assurance (QA – Đảm bảo chất lượng): Kiểm tra chất lượng tổng thể của game, thường bao gồm việc tìm và loại bỏ lỗi.

Ray tracing (Dò tia): Một kỹ thuật kết xuất ánh sáng mô phỏng sự tương tác của ánh sáng với các vật thể trong game theo cách cực kỳ chân thực.

Render (Kết xuất): Hành động liên tục tạo và làm mới hình ảnh 2D hoặc 3D thông qua xử lý máy tính.

Scripting (lập trình): Một từ khác của coding hoặc lập trình; hành động viết code.

Shaders (Trình tạo bóng): Các chương trình nhỏ trong các quy trình phát triển game lớn hơn thường được sử dụng để kiểm soát hiệu ứng ánh sáng và bóng đổ.

Skeletal animation (Diễn hoạt khung xương): Một loại diễn hoạt máy tính đặt một tập hợp “xương” bên trong lưới, cho phép lưới tĩnh nếu không được khớp nối và tạo dáng cho khung hình chính hoạt hình.

Sprite: Hình ảnh bitmap, thường được sử dụng làm GameObject 2D. Trong 3D, sprite thường hoạt động như kết cấu.

Terrain (Địa hình): Bất cứ thứ gì tạo ra môi trường trong video game.

Texture (Kết cấu): Một lớp bọc trực quan được đặt xung quanh GameObject, chẳng hạn như lớp da trên nhân vật.

Texture mapping (Ánh xạ kết cấu): Quá trình áp dụng kết cấu cho GameObject.

Tile (Ngói): Một hình ảnh được sử dụng để tạo các hình ảnh khác, lớn hơn (chẳng hạn như nền tảng) trong game 2D.

Tilemap (Bản đồ ô xếp): Một hệ thống lưu trữ và xử lý nội dung ô xếp để tạo cấp độ 2D.

UI/GUI: Giao diện người dùng/giao diện người dùng đồ họa. Menu, kho vật phẩm và các hệ thống tương tác non-game khác trên màn hình.

UX (để phát triển game): Trải nghiệm người dùng. Đảm bảo rằng việc thiết kế và triển khai game làm hài lòng và thân thiện với người dùng.

Vector graphic (Đồ họa vector): Một loại hình ảnh đồ họa sử dụng các điểm hai chiều để kết nối các đường và đường cong, cho phép nó được thu nhỏ và tùy chỉnh.

Vertex: Một điểm trong không gian 2D hoặc 3D. Nối hai đỉnh với nhau tạo thành một cạnh.

Vertical slice (Lát cắt dọc): Phần chứng minh khái niệm của game, thường được trao cho các nhà đầu tư hoặc nhà phát hành để có cơ hội nhận được tài trợ và quan hệ đối tác.

Visual scripting: Một phương pháp tổ chức và tạo code trực quan, nơi các nhà phát triển có thể tạo và kết nối các nút đồ họa để tổ chức các GameObject, sự kiện, chương trình khác nhau, v.v.

Thể loại game và thuật ngữ trong game 

Các thể loại và thuật ngữ trong game
Các thể loại và thuật ngữ trong game

Action-adventure (Phiêu lưu hành động): Một trò chơi trong đó người chơi vượt qua một loạt chướng ngại vật lớn nhỏ trong khi tiến bộ qua nhiều cấp độ hoặc kịch bản.

Augmented reality (Thực tế tăng cường – AR): Một trải nghiệm kết hợp cách chơi với các tính năng thực tế tăng cường được phủ trên một vị trí thực tế. Ví dụ về trò chơi AR trên thiết bị di động bao gồm Pokémon Go và Jurassic World Alive.

Battle royale (Chiến đấu sinh tồn): Một game trực tuyến trong đó bản đồ trò chơi đóng vai trò là đấu trường để nhiều chiến binh tìm và chiến đấu với nhau, với mục tiêu điển hình là trở thành người chơi cuối cùng còn sống.

Bullet hell (Địa ngục đạn): Các game dựa vào cơ chế chính của trò chơi bắn vũ khí và tránh bắn trả, thường ở mức cường điệu và hoành tráng.

Casual (Thông thường): Các trò chơi cung cấp lối chơi nhanh chóng thông qua cơ chế tối thiểu.

Cooperative (Hợp tác): Một trò chơi hoặc phong cách chơi thưởng cho sự hợp tác thay vì khiến người chơi đọ sức với nhau.

Couch co-op: Game nhiều người chơi hợp tác chỉ có thể chơi bằng cách có hai người chơi trở lên ở cùng một địa điểm.

Downloadable content (Nội dung có thể tải xuống – DLC): Phần bổ sung hoặc mở rộng cho trò chơi có thể được tải xuống và thêm vào thông qua quy trình cài đặt trong ứng dụng thường đơn giản.

Educational (Giáo dục): Trò chơi có mục đích giáo dục người chơi về một kỹ năng hoặc chủ đề cụ thể.

Esports (Thể thao điện tử): Các sự kiện thi đấu game chuyên nghiệp.

Fantasy: Xem game nhập vai (RPG).

Fighting (Chiến đấu): Game có cơ chế chính là chiến đấu tay đôi trong cài đặt (những) người chơi vs. (những) người chơi (PvP).

First-person shooter (Game bắn súng góc nhìn thứ nhất – FPS): Trò chơi từ góc nhìn của người bắn súng, khi họ chĩa súng vào các mục tiêu khác nhau.

Chơi miễn phí (F2P): Trò chơi miễn phí để tải xuống và chơi, mặc dù studio/nhà xuất bản có thể kiếm tiền từ trò chơi đó thông qua các giao dịch vi mô (chẳng hạn như IAP), video có tặng thưởng, quảng cáo hoặc các phương tiện khác.

Horror: Game có thiết kế và cơ chế được xây dựng dựa trên việc gây ra sự sợ hãi và khiếp đảm cho người chơi.

Hyper-casual: Một trò chơi thường cung cấp một cơ chế duy nhất, dễ hiểu dẫn đến sự hài lòng khi chơi trò chơi ngay lập tức.

In-app purchases (Mua trong ứng dụng – IAP): Các vật phẩm bổ sung hoặc bổ sung mà bạn có thể mua từ trong game.

Massively multiplayer online role-playing game (Game nhập vai trực tuyến nhiều người chơi – MMORPG): Một game nhập vai thường cho phép hàng trăm hoặc hàng nghìn người chơi trực tuyến chơi và tương tác trong cùng một thế giới trò chơi.

Match 3, hoặc match-three: Xem ghép tile-matching

Metroidvania: Một thể loại phụ của game phiêu lưu hành động có thiết kế và cơ chế lấy cảm hứng rất nhiều từ game Metroid và Castlevania.

Microtransaction (Giao dịch vi mô): Một giao dịch nhỏ được hoàn thành trực tuyến, thường là để mua hàng trong ứng dụng.

MOBA: Xem multiplayer online battle arena.

Multiplayer (Nhiều người chơi): Một trò chơi cho phép nhiều người chơi cùng chơi vào bất kỳ thời điểm nào.

Multiplayer online battle arena (Đấu trường trực tuyến nhiều người chơi – MOBA): Một loại game chiến lược có các đội người chơi đọ sức với nhau, trong đó các thành viên của mỗi đội phối hợp tấn công và phòng thủ để giành chiến thắng.

Non-player character (Nhân vật không thể chơi được hoặc nhân vật không phải người chơi – NPC): Một nhân vật trong trò chơi được điều khiển bởi trí tuệ nhân tạo (AI).

Open-world (Thế giới mở): Một trò chơi trong đó người chơi được cung cấp một thế giới vô cùng rộng lớn để khám phá và chơi.

Party: Các game nhiều người chơi thường có từ 4 đến 8 người chơi cho phép bạn bè thi đấu với nhau để giành phần thưởng và chiến thắng.

Platformer: Một game thường là hai chiều, trong đó người chơi chạy, leo trèo và nhảy trên các nền tảng để tiến bộ.

Player(s) vs. player(s) (Những) người chơi đấu với (những) người chơi (PvP): Một trò chơi trong đó một hoặc nhiều người chơi thi đấu với một hoặc nhiều người chơi.

Point-and-click (Trỏ và nhấp): Một trò chơi dựa trên các lần nhấp chuột để thăng cấp nhân vật, giải câu đố và đưa ra lựa chọn.

Puzzle: Game yêu cầu người chơi giải các bài toán hình ảnh hoặc logic, tìm vật phẩm/mẫu phù hợp, v.v., để tích lũy điểm hoặc chuyển sang cấp độ mới. Các game như Monument Valley thuộc thể loại này.

Racing (Đua xe): Bất kỳ game nào có cơ chế chính là chạy đua cạnh tranh với AI hoặc những người chơi khác.

Real-time strategy (Chiến lược thời gian thực – RTS): Một trò chơi trong đó người chơi thường điều khiển một nhóm nhân vật và cố gắng thống trị máy tính hoặc đội quân đối phương do người chơi điều khiển. Các trò chơi như Civilization, Age of Empires và Warcraft/Warcraft II gốc thuộc thể loại này.

Rhythm (Nhịp điệu): Game dựa trên các đầu vào của bộ điều khiển tương ứng với lời nhắc nhịp điệu, thường thông qua âm nhạc hoặc hiệu ứng âm thanh kết hợp với tín hiệu hình ảnh.

Roguelike: Một loại game phiêu lưu hành động nhập vai trong đó người chơi thường có một mạng sống để đi đến cuối trò chơi hoặc ít nhất là rất ít cơ hội để hồi sinh.

Role-playing game (Trò chơi nhập vai – RPG): Một phong cách chơi nhập vai thường khuyến khích sự hòa nhập và tương tác, cũng như khả năng tùy chỉnh và cá nhân hóa nhiều cho các nhân vật điều khiển được của bạn. Sci-Fi và Fantasy là những thể loại game nhập vai phổ biến.

Sandbox: Một game cho phép người chơi xây dựng thế giới có thể chơi được xung quanh họ.

Shooter (Game bắn súng): Một thể loại game dựa trên đấu súng. Có game bắn súng góc nhìn thứ nhất, game bắn súng góc nhìn thứ ba và các thể loại phụ khác.

Simulation (Mô phỏng – Sim): Game bắt chước các hoạt động và chức năng trong đời thực, thường rất chính xác.

Souls-like: Thể loại game phiêu lưu hành động thường dựa vào cơ chế “né hoặc chết” hay còn gọi là Dark Souls.

Sports (Thể thao): Game trong đó một môn thể thao đồng đội hoặc cá nhân như bóng đá, bóng đá, quần vợt hoặc đạp xe đã được mô phỏng.

Stealth (Tàng hình): Game dựa vào việc người chơi ẩn nấp và bí mật vượt qua hoặc vượt qua các chướng ngại vật để thành công.

Strategy (Chiến lược): Game yêu cầu lập kế hoạch và tổ chức để tiến lên (và để tránh thất bại) để đạt được mục tiêu cuối cùng.

Survival (Sinh tồn): Game trong đó người chơi cần giữ cho nhân vật của mình được an toàn và khỏe mạnh, thường là bằng cách chạy nhanh hơn kẻ thù trong khi tìm kiếm thức ăn, nước uống và nơi trú ẩn.

Text-based (Dựa trên văn bản): Một phong cách chơi phần lớn đã lỗi thời, trong đó người chơi được trình bày các tình huống ở dạng văn bản và họ phải phản hồi bằng các lệnh văn bản để tiếp tục trò chơi.

Third-person shooter (Game bắn súng góc nhìn thứ ba): Game bắn súng trong đó góc nhìn là từ một camera “khách quan”, cho thấy người bắn súng và môi trường của họ.

Tile-matching (Ghép ô): Game  trong đó người chơi phải xác định hoặc ghép một số ô giống nhau. Một loại phổ biến là trò chơi ghép 3 (match-ba). Tetris thuộc thể loại này.

Virtual reality (Thực tế ảo – VR): Game yêu cầu người chơi đeo tai nghe thực tế ảo và sử dụng các thiết bị đầu vào như bàn phím hoặc bộ điều khiển tay để trải nghiệm trong môi trường 3D ảo. Ví dụ bao gồm Beat Sabre và Rock Band VR.

Visual novel (Tiểu thuyết trực quan): Một phong cách trò chơi dựa trên các họa tiết tĩnh hoặc tác phẩm nghệ thuật tương ứng với cách kể chuyện dựa trên văn bản, thường được chơi bằng cách chọn các câu trả lời xác định trước cho câu chuyện được kể. Thường sử dụng phong cách anime.

GAMBA Team, từ: Unity

Categories
Designer/Artist's Corner Gambaru News

Cách vận hành quy trình phát triển game (game development pipeline)

Maksim Makovsky, Giám đốc nghệ thuật 3D của Room 8 Studio, sẽ trình bày chi tiết về quy trình sản xuất game điển hình mà những ai mới vào nghề buộc phải nắm vững.

Maksim Makovsky là giám đốc nghệ thuật bộ phận 3D tại Room 8 Studio. Với mười năm kinh nghiệm trong ngành video game, ông đã làm việc trên một số tựa game lớn nhất trong ngành gồm Call of Duty, Control, Overkill’s The Walking Dead, Warthunder và World of Tanks.

Giới thiệu cách vận hành quy trình phát triển game

Mọi video game đều bắt đầu với một ý tưởng đòi hỏi rất nhiều suy nghĩ và lên kế hoạch trước khi nó xuất hiện trên bảng vẽ. Để biến ý tưởng đơn giản nhất thành hiện thực, cần có một đội ngũ nhà thiết kế, nhà phát triển và nghệ sĩ để đưa nó vào sản xuất.

Đội ngũ này phụ trách thiết kế và tạo ra tất cả các ý tưởng trò chơi có các bộ kỹ năng và trách nhiệm khác nhau. Thiết kế trò chơi đòi hỏi các khả năng khác nhau phải được kết hợp chính xác để tạo ra trải nghiệm thú vị và hấp dẫn.

Các nhà thiết kế ghi dấu ấn tầm nhìn nghệ thuật và sự sáng tạo của họ lên tất cả các yếu tố sản xuất trò chơi. Tuy nhiên, nghệ thuật thôi là chưa đủ. Team cần có mục tiêu rõ ràng và cách thức đảm bảo tất cả các nguồn lực được phân bổ hợp lý nhằm tạo ra hiệu quả và sự phối hợp. Người quản lý dự án phải cung cấp cho mọi người những công cụ tốt nhất cho công việc của họ.

Nói cách khác, thách thức chủ yếu mà các studio phải đối mặt là tìm ra sự cân bằng hoàn hảo giữa sáng tạo và hiệu quả. Có một tầm nhìn vĩ đại cũng chẳng ích gì nếu không có một quy trình sản xuất để đảm bảo rằng sản phẩm sẽ được chào đời.

Bài viết này cung cấp tổng quan về quy trình phát triển trò chơi và cách các công cụ phát triển đang thay đổi bối cảnh thiết kế. Nếu bạn là người đứng đầu studio hoặc là producer mới vào nghề, hãy tiếp tục nhé.


Khi nói chuyện với một nhà thiết kế video game (game designer) hoặc người đứng đầu studio về quy trình sản xuất game, thường họ sẽ bắt đầu bằng cách mô tả thành phần trong đội ngũ và các nhiệm vụ khác nhau của họ.

Hầu hết các studio được chia thành các bộ phận với trách nhiệm và mục đích cụ thể để giúp xây dựng sản phẩm cuối cùng mà không giẫm lên chân nhau.

Đây là những gì chúng tôi gọi là một quy trình sản xuất.

Đó là cái chúng ta hay gọi là 1 quy trình sản xuất (production pipeline).

Một quy trình có thể được hình dung như một chuỗi sản xuất được chia thành các bước khác nhau, mỗi bước tập trung vào một phần của sản phẩm cuối cùng.

Chúng ta có thể chia nó thành ba giai đoạn:

  • Tiền sản xuất
  • Sản xuất
  • Hậu kỳ

Quy trình phát triển game – Tiền sản xuất

Tại đây, một nhóm nhỏ gồm các nghệ sĩ và giám đốc nghệ thuật cùng nhau tạo ra ý tưởng nghệ thuật, thiết kế nhân vật và bảng phân cảnh (storyboard). Lý tưởng nhất là các vai trò của nhóm phải luôn có người mỗi khi dự án mới bắt đầu.

Vai trò đầu tiên cần xem xét là giám đốc điều hành (director of operations). Dưới vị trí đó, thường sẽ có các bộ phận thiết kế, diễn hoạt, lập trình và nghệ thuật. Nó có thể bao gồm cả âm thanh, văn bản và QA, tùy vào phạm vi và quy mô của dự án.

Trong giai đoạn tiền sản xuất, chúng ta làm rõ các chi tiết như cốt truyện, phong cách chơi, bối cảnh, môi trường, truyền thuyết, đối tượng mục tiêu và nền tảng.

Những yếu tố này cực kỳ có giá trị khi tạo ra những bản phác thảo đầu tiên cho nhân vật, đạo cụ, địa điểm và vũ khí.

Bản phác thảo tiền sản xuất. Ảnh: Room 8 Studio
Bản phác thảo tiền sản xuất. Ảnh: Room 8 Studio

Lý do chính mà tiền sản xuất tồn tại là để loại bỏ càng nhiều phỏng đoán càng tốt trong các giai đoạn phát triển sau này. Tại đây, chúng ta có thể thử nghiệm các cách tiếp cận khác nhau, thêm hoặc loại bỏ các chi tiết và thử các biến thể trong bảng màu. Việc thay đổi bất kỳ yếu tố nào trong các giai đoạn sau đều tốn thời gian và có xu hướng rất tốn kém, vì vậy chúng ta cố gắng hoàn thiện mọi thứ trong giai đoạn tiền sản xuất.

Sau đó, chúng ta chuyển sang giai đoạn bảng phân cảnh, giai đoạn này sẽ hiển thị các nhân vật tương tác với nhau hoặc với môi trường. Ở đây, chúng ta tưởng tượng góc máy quay, chuyển cảnh, ánh sáng và các hiệu ứng khác. Điều này sẽ giúp giai đoạn tiếp theo, diễn hoạt thô (animatics), áp dụng một số hiệu ứng camera, âm thanh được sử dụng như tham chiếu, tường thuật và nhạc nền. Quá trình này giúp gọt giũa game và câu chuyện.

Sau khi thử nghiệm tất cả các yếu tố này, cuối cùng chúng ta đi đến thống nhất về phong cách tường thuật của câu chuyện và quyết định về phong cách nghệ thuật. Tại thời điểm này, con game có được cá tính của nó, có thể là cảm giác chân thực để gia tăng sự đắm chìm, đến pixel art, đến cell-shaded animation (diễn hoạt đổ bóng) để có cảm giác hoạt hình hơn.

Khi các mô hình, bản phác thảo, bảng phân cảnh và phong cách game đầu tiên đều được phê duyệt, chúng sẽ chuyển sang giai đoạn tiếp theo của quy trình sản xuất.

Quy trình phát triển game – Sản xuất

Sản xuất là nơi tạo ra phần lớn nội dung của trò chơi. Thông thường, đây là giai đoạn đòi hỏi nhiều tài nguyên nhất.

Dựng mô hình (Modeling)

Ở giai đoạn này, các nghệ sĩ bắt đầu chuyển hoá tầm nhìn thành tài sản (asset) được sử dụng trong các giai đoạn sau. Rồi thì các modeler (người dựng mô hình) sẽ sử dụng phần mềm chuyên dụng để diễn giải các phác thảo và ý tưởng thành mô hình 3D. Địa hạt phần mềm 3D ngày nay bị thống trị bởi Maya, 3DS Max và Blender.

Khi thiết kế đạo cụ, khởi đầu rõ ràng nhất là với các đỉnh ở giai đoạn bắt đầu của quá trình dựng mô hình. Sau đó, các đỉnh được nối với các đường để tạo thành các cạnh, rồi đến các mặt, đa giác và bề mặt. Quá trình này tốn nhiều thời gian và độ phức tạp của nó phụ thuộc vào mức độ chi tiết mà chúng ta muốn các mô hình của mình trông như thế nào.

Hãy bắt đầu với một mô hình 3D đơn giản, sau đó thêm nhiều chi tiết và nếp nhăn thông qua điêu khắc (sculpting). Nền tảng đích sẽ thông tin mức độ chi tiết mà chúng ta muốn cho một mô hình; mô hình càng chi tiết, số lượng tam giác càng nhiều và sức mạnh xử lý để kết xuất càng nhiều.

Một bước đột phá lớn là việc sử dụng phép quang trắc (photogrammetry) để tạo ra các mô hình siêu thực. Bao gồm từ các vật thể ngoài đời thực đến các khảo sát địa hình của toàn bộ khu vực, chẳng hạn như các thành phố và đường đua, tạo ra sự đắm chìm nâng cao. Các trò chơi như Forza Motorsports và Call of Duty: Modern Warfare đã sử dụng rộng rãi phép chụp ảnh để làm sống động các đối tượng và kịch bản thực, đồng thời cung cấp cho người chơi môi trường và đạo cụ thực tế.

Phép quang trắc (photogrammetry) cũng cho phép các studio tạo ra hình ảnh chân thực hơn với một phần chi phí cần thiết để điêu khắc tài sản theo cách thủ công. Nhiều studio đang chuyển sang công nghệ này vì nó tiết kiệm rất nhiều thời gian tạo mô hình và điêu khắc, khiến khoản đầu tư cần thiết trở nên xứng đáng.

Một mô hình được tạo bằng phép quang trắc từ Khảo cổ học Wessex
Một mô hình được tạo bằng phép quang trắc từ Khảo cổ học Wessex

Về phần mềm, ZBrush cho phép chúng ta điêu khắc hoặc thao tác các mô hình có độ phân giải cực cao cho các nhân vật và đạo cụ có thể đạt tới 30 triệu đa giác ở phía bắc. Sau đó, chúng ta có thể retopo (tái cấu trúc) các mô hình của mình thành các polycount cụ thể tùy thuộc vào yêu cầu kỹ thuật và nền tảng đích. Điều này đã làm cho ZBrush trở thành tiêu chuẩn ngành.

Nhiều hãng phim đã tận dụng sức mạnh của Autodesk 3Ds Max và Maya trong hơn mười năm, nhờ các tính năng tích hợp quy trình và dễ sử dụng của chúng. Nhưng Blender mang lại sự linh hoạt hơn rất nhiều cho các nghệ sĩ solo trong việc triển khai các giải pháp tùy chỉnh cho quy trình làm việc của họ mà không gặp sự cố.

Ảnh chụp màn hình từ Blender
Ảnh chụp màn hình từ Blender

Lắp khung (Rigging)

Đây là nơi các thứ trở nên kỹ thuật hơn một chút. Rigger chịu trách nhiệm tạo khung xương cho các mô hình 3D và khớp nối mọi bộ phận theo cách có ý nghĩa. Sau đó, họ buộc các xương này vào khối hình học xung quanh, giúp người làm hoạt hình dễ dàng di chuyển từng phần riêng lẻ khi cần.

Họ cũng xây dựng các điều khiển (control) sẽ chi phối chuyển động của nhân vật dưới dạng tập lệnh tự động. Điều này làm cho quá trình trở nên dễ dàng và hiệu quả hơn rất nhiều, vì các điều khiển tương tự cũng có thể được sử dụng cho các nhân vật và dự án khác.

Riggers chịu trách nhiệm tạo khung xương cho các mô hình 3D và khớp nối mọi bộ phận theo cách có ý nghĩa. Ảnh: Room 8 Studio
Riggers chịu trách nhiệm tạo khung xương cho các mô hình 3D và khớp nối mọi bộ phận theo cách có ý nghĩa. Ảnh: Room 8 Studio

Diễn hoạt (Animation)

Người làm diễn hoạt (Animator) sử dụng các mô hình 3D được thiết kế phù hợp để tạo ra chuyển động mượt mà và mang lại sự sống động cho nhân vật. Cần phải chú ý đến chi tiết trong giai đoạn này, vì mọi chi và cơ bắp phải di chuyển một cách tự nhiên.

Quá trình làm hoạt ảnh đã thay đổi đáng kể trong những năm qua, đặc biệt là sau khi áp dụng các quy trình phi tuyến tính.

Sau khi diễn hoạt được phê duyệt, hoạt ảnh sẽ được đưa vào định dạng hình học để phân tách mọi khung hình thành các tư thế riêng lẻ sẽ được sử dụng cho mô phỏng và ánh sáng.

Ngoại hình

Đây là nơi áp dụng kết cấu và đổ bóng cho tất cả nội dung. Mỗi đối tượng và bề mặt cần phải tuân theo một bảng màu. Những thứ như màu da, quần áo và các vật dụng đều được sơn trong giai đoạn này.

Chúng ta cũng áp dụng họa tiết cho các đối tượng theo phong cách đã thống nhất ở giai đoạn tiền sản xuất.

Để kết xuất dựa trên vật lý (PBR – physically based rendering), ta có thể sử dụng rất nhiều công cụ. Bộ Adobe Substance đã được chứng minh là vô cùng linh hoạt, làm cho nó được yêu thích ngay cả với những ông lớn trong ngành như Pixar.

Để kết xuất dựa trên vật lý (PBR), chúng tôi có thể sử dụng rất nhiều công cụ, với bộ Adobe Substance tỏ ra cực kỳ linh hoạt. Ảnh: Room 8 Studio
Để kết xuất dựa trên vật lý (PBR), chúng ta có thể sử dụng rất nhiều công cụ, và bộ Adobe Substance tỏ ra cực kỳ linh hoạt. Ảnh: Room 8 Studio

Ví dụ: Substance Designer cho phép tạo kết cấu và vật liệu một cách dễ dàng, sau đó có thể được tạo theo thủ tục tùy vào thành phần của lưới mục tiêu.

Substance Painter giúp việc tạo và áp dụng họa tiết cho các đối tượng 3D trở nên dễ dàng hơn nhiều, làm cho quy trình được sắp xếp hợp lý hơn rất nhiều và cho phép các artist nhập trực tiếp sản phẩm của họ vào game engine. Nó cũng cung cấp các công cụ baking tuyệt vời giúp bạn có thể bake các mắt lưới poly cao vào lưới poly thấp mà không làm mất đi các đặc tính của chúng (baking – phương pháp tiền xử lý hiệu suất trên tài nguyên và dữ liệu game nhằm đảm bảo chúng tải và chạy tốt theo thời gian thực). Đó là một điều may mắn khi xử lý ngân sách đa giác chặt chẽ.

Sau khi áp dụng họa tiết cho các đối tượng của mình, chúng ta quyết định cách chúng sẽ tương tác với các nguồn sáng, kết hợp các thuộc tính của bề mặt với họa tiết đã chọn và đi đến giao diện cuối cùng.

Unreal Engine 5, một trong những công cụ mạnh mẽ nhất trong quy trình, nó có một công cụ kết xuất có tên là Lumen, cho phép Chiếu sáng toàn cầu (Global Illumination) mà không cần phải bake bản đồ ánh sáng (lightmap) để cung cấp ánh sáng chính xác. Điều này rất quan trọng đối với các nghệ sĩ vì chúng ta không còn cần phải xử lý các UV của lightmap và các quy trình tẻ nhạt khác khiến quy trình chiếu sáng trở nên khó khăn.

Ngược lại, khi tạo một địa điểm, trước đây ta phải thiết lập lightmap và bake chúng vào cảnh quay để có thể có được ánh sáng toàn cầu, bóng tối chân thực và tất cả những khía cảnh giúp tạo ra một bối cảnh đáng tin cậy. Quá trình này có thể khiến chúng ta mất cả ngày chỉ để xác định đúng các kênh UV.

Lumen cũng cung cấp cách thức (đã được tối ưu cao) để tạo ánh sáng động bao phủ cả không gian ngoài trời và trong nhà vì nó chuyển đổi hiệu quả giữa ba phương pháp truy vết mà không cần sử dụng nhiều tài nguyên.

Mô phỏng

Có những thứ quá phức tạp để tạo hiệu ứng bằng tay. Đây là nơi bộ phận mô phỏng bước vào. Tính ngẫu nhiên của sóng nước và gợn sóng, hoặc tác động của gió và chuyển động trên bề mặt và tóc, tất cả đều được lập trình bởi trình người làm mô phỏng (simulator).

Các thuật toán mô phỏng và công nghệ ngày nay cho phép tạo ra các chuyển động chân thực cao đối với chất lỏng, khí, lửa, quần áo và thậm chí cả khối cơ bắp trên các nhân vật.

Lắp ráp

Giai đoạn này, chúng ta đặt mọi thứ lại với nhau để tạo ra sản phẩm cuối cùng. Mỗi asset giống như một mảnh Lego đóng vai trò là khối xây dựng cho một cấp độ. Tùy thuộc vào game engine được sử dụng trong quy trình (Unreal, Unity hoặc các công cụ khác), chúng ta cần đảm bảo quá trình tích hợp nội dung diễn ra suôn sẻ. Do đó, trong quá trình lắp ráp, điều cần thiết là phải có một quy trình vững chắc cho phép chúng ta có mọi thứ trong tầm tay và tránh mọi tắc nghẽn có thể ảnh hưởng đến hiệu quả.

Lắp ráp trong Unreal Engine
Lắp ráp trong Unreal Engine

Một khía cạnh thay đổi cuộc chơi của Unreal Engine 5 (UE5) là tính năng Nanite. Giải pháp độc quyền này đã thay đổi mạnh mẽ các quy trình bằng cách cho phép nhập và kết xuất các mô hình 3D có số lượng lớn trong thời gian thực mà không làm giảm hiệu suất.

UE5 thực hiện điều đó bằng cách chuyển đổi tài sản thành các mắt lưới hiệu quả hơn, thay đổi linh hoạt tùy thuộc vào khoảng cách từ camera. Vì vậy, ví dụ, hình tam giác sẽ nhỏ hơn khi máy ảnh đến gần hơn và ngược lại. Điều này có nghĩa là việc mày mò LOD (level of detail) truyền thống không còn cần thiết nữa.

Quy trình phát triển game – Hậu kỳ

Có nhiều khía cạnh trong giai đoạn hậu kỳ, nhưng quan trọng nhất là hiệu chỉnh màu sắc và ánh sáng, vì chúng thiết lập tông màu cuối cùng cho game hoặc đoạn giới thiệu. Đây là nơi cung cấp cho trò chơi phong cách hình ảnh độc đáo bằng cách thêm các tông màu hoặc bộ lọc cụ thể vào hình ảnh. Màu xanh lá cây mang tính biểu tượng được sử dụng xuyên suốt phim Ma trận đã được áp dụng trong giai đoạn hậu kỳ.

Nhưng có những yếu tố khác làm cho hậu kỳ trở thành một giai đoạn quan trọng. Ví dụ: lập hồ sơ, đo số lượng tốc độ khung hình và thời gian khung hình, đảm bảo ngân sách đa giác phù hợp với bộ nhớ được phân bổ bởi nền tảng đích và quyết định ánh sáng và bóng tối nào sẽ được đưa vào hoặc coi là động lực học.

Unreal Engine
Unreal Engine

Trong các studio hoạt hình, theo truyền thống, phần lớn tài nguyên sẽ được chuyển vào các giai đoạn sản xuất. Điều này hoàn toàn trái ngược với những gì xảy ra trong các studio ngoài đời thực, nơi chi phí hoàn thiện sản phẩm có trọng lượng lớn hơn trong giai đoạn hậu kỳ.

Ví dụ: các đạo diễn phim được hưởng nhiều tự do và linh hoạt hơn trong các giai đoạn sản xuất so với những gì được phép đối với các studio hoạt hình truyền thống, vì vòng phản hồi thời gian thực cho phép các đạo diễn, diễn viên và đoàn làm phim biến tầm nhìn của studio thành hiện thực trong một vài cảnh quay.

Ngày nay, các công cụ như Unreal Engine 5 trao sự tự do tương tự cho các nhà làm diễn hoạt. Các nhà phát triển có thể chọn nội dung, nhân vật và vị trí cũng như di chuyển camera và các góc xung quanh, giúp họ có khả năng trực quan hóa các sản phẩm có thể phân phối. Nếu họ muốn biết cách thao túng một tài sản, họ có thể thực hiện trực tiếp thông qua công cụ trong thời gian thực. Điều này giúp loại bỏ chênh lệch previs-director (kỹ thuật tạo ra tài liệu giúp hình dung trước cảnh quay có giống với ý đồ của đạo diễn hay không) bằng cách cho phép đạo diễn điều khiển tài sản và cung cấp phản hồi ngay lập tức.

Hơn nữa, giờ đây chúng tôi có thể tổng hợp mọi tài sản vào công cu, vì vậy quy trình di chuyển tự do giữa các giai đoạn sản xuất. Với các quy trình phi tuyến tính, các studio thậm chí có thể phân bổ chi phí và phân bổ chi phí đồng đều hơn giữa các giai đoạn sản xuất.

Một trong những tác dụng chính của phương pháp này là giờ đây chúng tôi có thể loại bỏ nội dung cấp sản xuất ngay từ giai đoạn tiền sản xuất và sau đó truyền chúng qua toàn bộ quy trình mà không gặp sự cố.

Trong các bước cuối cùng của quy trình này, bộ phận đảm bảo chất lượng thực hiện kiểm tra chức năng và tuân thủ để đảm bảo sản phẩm hoạt động như quảng cáo và tuân thủ các yêu cầu do nền tảng đặt ra.

Các hãng phim ngày nay phải thiết lập một hệ thống quy trình linh hoạt, tận dụng sức mạnh của các công cụ và xu hướng công nghệ mới nhất để đảm bảo tầm nhìn trở thành hiện thực trong khi vẫn duy trì tính cạnh tranh. Việc chuyển sang các quy trình phi tuyến tính và công cụ thời gian thực được coi là yếu tố thay đổi cuộc chơi, cho phép ngay cả những nhóm nhỏ nhất cạnh tranh với những người khổng lồ trong ngành mà không rớt 1 nhịp.

Tuy nhiên, việc sử dụng thành thạo các công cụ thiết kế, hoạt hình và phát triển mạnh mẽ hơn bao giờ hết vẫn là điều tạo nên sự khác biệt trong ngành này. Cho dù công nghệ có tiến xa đến đâu, nếu không có một đội ngũ tài năng và giàu kinh nghiệm hiểu cách tận dụng những công cụ này và kết hợp một chuỗi sản xuất hiệu quả, thì những công cụ này chỉ có thể giúp bạn đi tới 1 giới hạn mà thôi.

GAMBA Team, tham khảo: gamesindustry.biz

Categories
Designer/Artist's Corner Gambaru News

Tìm hiểu về Unreal Engine

Unreal Engine, một công cụ phát triển trò chơi đã cách mạng hóa ngành công nghiệp. Từ đồ họa ngoạn mục và thế giới nhập vai đến cơ chế chơi trò chơi năng động và khả năng đa nền tảng, Unreal Engine đã trở thành lựa chọn hàng đầu của các nhà phát triển trên toàn cầu. 

Cho dù bạn là nhà phát triển trò chơi dày dạn kinh nghiệm hay người đam mê trải nghiệm tương tác, bài này sẽ trả lời bạn các câu hỏi về công cụ mạnh mẽ này. 

Unreal Engine là gì?

Ấy, khoan vội đọc tiếp đã. Ngày 22.07 Gamba tổ chức Offline event (Game Series #01), với chủ đề UNREAL ENGINE & Game Development World Trend 2024, với sự có mặt của hơn 50 thành viên trong cộng đồng Gamba for GAME và anh Hân Lê, CEO của Galasta Studio, speaker của buổi này.

Mời bạn đăng ký và tham gia: Gambaru | [OFFLINE] Game Series #01 – Unreal Engine and Game Development World Trends in 2024

Unreal Engine & Game Development World Trend 2024
Offline event: Unreal Engine & Game Development World Trend 2024

Unreal Engine là một công cụ phát triển trò chơi và công cụ kết xuất thời gian thực được tạo bởi Epic Games. Nó cung cấp một bộ công cụ và tính năng mạnh mẽ để thiết kế, phát triển và triển khai trải nghiệm 3D và 2D tương tác, bao gồm trò chơi điện tử, ứng dụng thực tế ảo (VR) và thực tế tăng cường (AR), trực quan hóa kiến trúc, mô phỏng, v.v.

Unreal Engine là gì?
Unreal Engine là gì? Ảnh: Mixed-news.com

Unreal Engine cung cấp nhiều chức năng, chẳng hạn như kết xuất đồ họa chất lượng cao, mô phỏng vật lý nâng cao, hệ thống hoạt hình, công cụ âm thanh, khả năng AI, tính năng kết nối mạng và thư viện nội dung và hiệu ứng dựng sẵn phong phú. Nó hỗ trợ nhiều nền tảng khác nhau, bao gồm Windows, macOS, Linux, Android, iOS, Xbox, PlayStation và Nintendo Switch.

Một trong những ưu điểm chính của Unreal Engine là hệ thống tập lệnh trực quan Blueprint, cho phép các nhà phát triển tạo cơ chế chơi trò chơi, logic và tương tác mà không cần viết mã. Tuy nhiên, nó cũng cung cấp hỗ trợ đầy đủ cho lập trình bằng C++, cho phép các nhà phát triển tạo chức năng tùy chỉnh và tối ưu hóa hiệu suất.

Unreal Engine đã được sử dụng để tạo ra nhiều trò chơi điện tử thành công về mặt thương mại và được giới phê bình đánh giá cao, bao gồm Fortnite, Gears of War, BioShock và Rocket League. Nó cũng đã được áp dụng bởi các ngành ngoài trò chơi, chẳng hạn như sản xuất phim và truyền hình, diễn họa kiến trúc, thiết kế ô tô và mô phỏng đào tạo ảo.

Nhìn chung, Unreal Engine là một công cụ phát triển trò chơi linh hoạt và mạnh mẽ, hỗ trợ các nhà phát triển biến tầm nhìn sáng tạo của họ thành hiện thực với trải nghiệm sống động và tương tác trên nhiều nền tảng và ngành công nghiệp.

Lịch sử phát triển của Unreal Engine

Lịch sử phát triển của Unreal engine
Lịch sử phát triển của Unreal engine

Lịch sử của Unreal Engine kéo dài vài thập kỷ, với những tiến bộ và cột mốc quan trọng trong suốt chặng đường. Dưới đây là tổng quan về những thời điểm quan trọng trong lịch sử của Unreal Engine:

  1. Unreal Engine 1 (1998): Trò chơi đầu tiên được xây dựng trên Unreal Engine 1 là game bắn súng góc nhìn thứ nhất được giới phê bình đánh giá cao Unreal.
  2. Unreal Engine 2 (2002): Unreal Engine 2 mang đến nhiều cải tiến hơn nữa về khả năng đồ họa và vật lý. Nó đã giới thiệu hỗ trợ cho Xbox và PlayStation 2, mở rộng phạm vi tiếp cận của công cụ này sang các nền tảng console. Các trò chơi đáng chú ý được phát triển trên Unreal Engine 2 bao gồm Unreal Tournament 2003, Tom Clancy’s Splinter Cell và Deus Ex: Invisible War.
  3. Unreal Engine 3 (2006): Unreal Engine 3 đánh dấu bước nhảy vọt đáng kể về chất lượng đồ họa và hiệu năng. Nó đã giới thiệu các tính năng như bóng động, chiếu sáng toàn cầu và hệ thống kịch bản trực quan mạnh mẽ có tên là UnrealScript. Phiên bản công cụ này hỗ trợ một số trò chơi bom tấn, bao gồm Gears of War, BioShock và Mass Effect.
  4. Unreal Engine 4 (2014): Unreal Engine 4 đại diện cho một cuộc đại tu lớn của động cơ. Nó đã giới thiệu một giao diện thân thiện với người dùng hơn, khả năng đồ họa nâng cao và hệ thống tập lệnh trực quan Blueprint, cho phép các nhà phát triển tạo cơ chế chơi trò chơi phức tạp mà không cần viết mã. Unreal Engine 4 đã được áp dụng rộng rãi và hỗ trợ các trò chơi phổ biến như Fortnite, PUBG và Detroit: Become Human.
  5. Unreal Engine 5 (2021): Unreal Engine 5 nhằm mục đích cung cấp tính tương tác và tính chân thực hơn nữa trong trò chơi và các trải nghiệm thời gian thực khác.

Trong suốt lịch sử của mình, Unreal Engine đã phát triển và mở rộng khả năng của mình, trao quyền cho các nhà phát triển để tạo ra trải nghiệm trực quan tuyệt đẹp và hấp dẫn trên nhiều nền tảng khác nhau. Các bản cập nhật liên tục và sự hỗ trợ từ Epic Games đã củng cố vị trí của nó với tư cách là một trong những công cụ phát triển trò chơi hàng đầu trong ngành.

Ai sử dụng Unreal Engine

Ai sử dụng Unreal Engine?
Ai sử dụng Unreal Engine? Ảnh: Global Esport

Unreal Engine được sử dụng bởi nhiều cá nhân và tổ chức tham gia vào các ngành công nghiệp khác nhau. Dưới đây là một số người dùng chính của Unreal Engine:

  1. Nhà phát triển trò chơi: Unreal Engine chủ yếu được sử dụng bởi các nhà phát triển trò chơi, từ các studio độc lập đến các công ty trò chơi AAA lớn. Nó cung cấp một bộ công cụ và tính năng toàn diện để tạo các trò chơi chất lượng cao và ấn tượng về mặt hình ảnh trên các thể loại và nền tảng khác nhau.
  2. Nhà phát triển Thực tế ảo (VR) và Thực tế tăng cường (AR): Unreal Engine là một lựa chọn phổ biến cho các nhà phát triển làm việc trên các ứng dụng VR và AR. Khả năng kết xuất nâng cao, mô phỏng vật lý và hỗ trợ cho các thiết bị VR và AR khiến nó rất phù hợp để tạo trải nghiệm ảo đắm chìm.
  3. Hãng phim và hoạt hình: Unreal Engine đã đạt được sức hút trong ngành công nghiệp điện ảnh và hoạt hình. Khả năng kết xuất thời gian thực của nó cho phép các nhà làm phim và nhà làm phim hoạt hình tạo môi trường ảo, hình ảnh hóa trước và hiệu ứng hình ảnh cho phim, chương trình truyền hình và quảng cáo. Nó cho phép các nghệ sĩ làm việc với máy ảnh ảo, ánh sáng và các hiệu ứng đặc biệt theo cách tương tác và hiệu quả hơn.
  4. Trực quan hóa kiến trúc: Kiến trúc sư và nhà thiết kế sử dụng Unreal Engine để tạo trực quan hóa 3D chân thực về các tòa nhà, nội thất và môi trường đô thị. Nó cho phép họ trình bày các thiết kế của mình theo cách tương tác và nhập vai, cho phép khách hàng khám phá và trải nghiệm không gian trước khi chúng được xây dựng.
  5. Giáo dục và Đào tạo: Unreal Engine được sử dụng trong môi trường giáo dục để dạy phát triển trò chơi, đồ họa máy tính và thiết kế tương tác. Nó cung cấp một công cụ học tập mạnh mẽ để học sinh đạt được các kỹ năng thực tế trong việc tạo trò chơi và mô phỏng. Ngoài ra, nó được sử dụng để mô phỏng đào tạo trong các lĩnh vực như chăm sóc sức khỏe, quân sự và hàng không.
  6. Ô tô và Sản xuất: Unreal Engine được các ngành công nghiệp ô tô và sản xuất sử dụng để trực quan hóa sản phẩm, tạo mẫu ảo và mô phỏng. Nó cho phép các nhà thiết kế và kỹ sư tạo ra các mô hình ảo, mô phỏng vật lý trong thế giới thực và trực quan hóa các quy trình sản xuất phức tạp.

Đây chỉ là một vài ví dụ về nhiều ngành và cá nhân tận dụng Unreal Engine cho các dự án của họ. Tính linh hoạt, các tính năng mạnh mẽ và hỗ trợ cộng đồng rộng rãi khiến nó trở thành lựa chọn phổ biến cho các ứng dụng tương tác thời gian thực khác nhau.

Học Unreal Engine có khó không?

Học Unreal Engine khó không?
Học Unreal Engine khó không?

Học và thành thạo Unreal Engine có thể là một công việc quan trọng, đặc biệt đối với những người mới bắt đầu phát triển trò chơi hoặc công cụ 3D thời gian thực. Dưới đây là một số yếu tố cần xem xét khi đánh giá độ khó của việc học và thành thạo Unreal Engine:

  1. Độ phức tạp: Unreal Engine là một công cụ phức tạp và giàu tính năng với nhiều khả năng. Nó bao gồm nhiều khía cạnh khác nhau của quá trình phát triển trò chơi, bao gồm đồ họa, vật lý, hoạt ảnh, AI, kết nối mạng, v.v. Nắm vững tất cả các khía cạnh này và hiểu cách chúng hoạt động cùng nhau có thể đòi hỏi thời gian và sự cống hiến.
  2. Kiến thức lập trình: Unreal Engine hỗ trợ lập trình bằng C++ và mặc dù nó cung cấp hệ thống tập lệnh trực quan Blueprint để tạo cơ chế chơi trò chơi mà không cần mã hóa, nhưng có một số kiến thức lập trình có thể hữu ích. Việc học và hiểu Unreal Engine API cũng như cách viết mã cho các chức năng cụ thể có thể yêu cầu một số mức độ thành thạo lập trình.
  3. Đường cong học tập: Unreal Engine có một đường cong học tập, đặc biệt là cho người mới bắt đầu. Tài liệu, hướng dẫn và tài nguyên phong phú có sẵn từ Epic Games và cộng đồng có thể giúp ích cho quá trình học tập, nhưng vẫn cần thời gian và nỗ lực để nắm bắt các nguyên tắc cơ bản và trở nên thành thạo với công cụ này.
  4. Cập nhật thường xuyên: Unreal Engine thường xuyên nhận được các bản cập nhật và tính năng mới, điều đó có nghĩa là cần phải học liên tục để luôn cập nhật. Theo kịp những tiến bộ, thay đổi mới nhất và các phương pháp hay nhất có thể là một thách thức, nhưng điều cần thiết là tối đa hóa tiềm năng của động cơ.
  5. Thực hành và Kinh nghiệm: Giống như bất kỳ công cụ phức tạp nào, việc thành thạo Unreal Engine đòi hỏi kinh nghiệm và thực hành. Làm việc trong các dự án, thử nghiệm các tính năng khác nhau và giải quyết các thách thức phát triển trong thế giới thực sẽ giúp bạn hiểu sâu hơn và thành thạo công cụ này.

Mặc dù việc học và thành thạo Unreal Engine có thể đặt ra một số thách thức, nhưng điều quan trọng cần lưu ý là có rất nhiều tài nguyên sẵn có, bao gồm tài liệu chính thức, hướng dẫn, cộng đồng trực tuyến và diễn đàn, có thể hỗ trợ quá trình học tập. Ngoài ra, bắt đầu với các dự án nhỏ hơn và dần dần xây dựng các kỹ năng và kiến thức của bạn có thể giúp hành trình học tập trở nên dễ quản lý và thú vị hơn.

Những thống kê ấn tượng về Unreal Engine

Những thống kê ấn tượng về Unreal Engine
Những thống kê ấn tượng về Unreal Engine. Ảnh: Creative Bloq

Là một mô hình ngôn ngữ AI, tôi không có quyền truy cập thời gian thực vào các số liệu thống kê hiện tại. Tuy nhiên, đây là một số thống kê của Unreal Engine tính đến thời điểm giới hạn kiến thức của tôi vào tháng 9 năm 2021:

  1. Cơ sở người dùng: Unreal Engine có cơ sở người dùng lớn và ngày càng tăng. Tính đến năm 2021, có báo cáo rằng hơn 11 triệu nhà phát triển đã đăng ký trên nền tảng Unreal Engine.
  2. Thị phần trò chơi: Unreal Engine có sự hiện diện đáng kể trong ngành phát triển trò chơi. Người ta ước tính rằng Unreal Engine cung cấp năng lượng cho khoảng 50% tất cả các trò chơi trên PC và bảng điều khiển mới được phát hành.
  3. Cửa hàng trò chơi sử thi: Công ty mẹ của Unreal Engine, Epic Games, đã ra mắt Cửa hàng trò chơi sử thi vào năm 2018. Cửa hàng này đã trở nên phổ biến với hàng triệu người dùng và danh mục trò chơi ngày càng tăng, nhiều trò chơi trong số đó được phát triển bằng Unreal Engine.
  4. Các ngành công nghiệp: Unreal Engine đã mở rộng ra ngoài ngành công nghiệp trò chơi và đang được sử dụng trong nhiều lĩnh vực khác nhau. Nó ngày càng được áp dụng trong các lĩnh vực như sản xuất phim và truyền hình, diễn họa kiến trúc, thiết kế ô tô, mô phỏng đào tạo ảo, v.v.
  5. Thị phần: Unreal Engine là một trong những công cụ trò chơi hàng đầu cùng với Unity. Tuy nhiên, thị phần chính xác có thể khác nhau tùy thuộc vào các nguồn và tiêu chí khác nhau được sử dụng để đo lường.

Xin lưu ý rằng số liệu thống kê ở trên có thể đã thay đổi kể từ khi tôi bị giới hạn kiến thức và bạn nên tham khảo các nguồn và báo cáo gần đây để biết số liệu thống kê cập nhật nhất về Unreal Engine.

Những tựa game sử dụng chính là Unreal Engine

Unreal Engine đã được sử dụng để phát triển nhiều trò chơi phổ biến và thành công thuộc các thể loại khác nhau. Dưới đây là một số trò chơi đáng chú ý đã sử dụng rộng rãi Unreal Engine:

1. Fortnite

Fortnite & Unreal engine
Fortnite & Unreal engine. Ảnh: Trashbox

Được phát triển bởi Epic Games, Fortnite là một trò chơi battle royale cực kỳ phổ biến đã được công nhận trên toàn cầu. Nó thể hiện các khả năng của Unreal Engine trong việc tạo ra các môi trường quy mô lớn, ấn tượng về mặt hình ảnh và mang lại trải nghiệm chơi trò chơi mượt mà.

2. Sê-ri Gears of War

Gear of War & Unreal engine
Gear of War & Unreal engine

Thương hiệu Gears of War, được tạo bởi Epic Games và sau đó được phát triển bởi The Coalition, được biết đến với lối chơi bắn súng góc nhìn thứ ba gay cấn. Sê-ri đã liên tục sử dụng Unreal Engine, thể hiện khả năng của nó trong việc tạo môi trường chi tiết, ánh sáng động và cơ chế chiến đấu hấp dẫn.

3. Sê-ri Borderlands

Borderlands & Unreal engine
Borderlands & Unreal engine. Ảnh: EpicGames

Được phát triển bởi Gearbox Software, sê-ri Borderlands kết hợp bắn súng góc nhìn thứ nhất với các yếu tố nhập vai theo phong cách nghệ thuật bóng mờ độc đáo. Các trò chơi đã sử dụng rộng rãi Unreal Engine, tận dụng tính linh hoạt của nó để tạo hình ảnh cách điệu và lối chơi có nhịp độ nhanh.

4. Rocket League

Rocket League
Rocket League. Ảnh: Exputer

Rocket League của Psyonix là một trò chơi nhiều người chơi nổi tiếng kết hợp bóng đá với lối chơi dựa trên phương tiện có nhịp độ nhanh. Nó sử dụng Unreal Engine để cung cấp cơ chế dựa trên vật lý mượt mà, hình ảnh chân thực và đấu trường nhập vai.

5. Sê-ri BioShock

Bioshock & Unreal engine
Bioshock & Unreal engine

Sê-ri BioShock, được phát triển bởi Irrational Games và sau này là 2K Marin, nổi tiếng với cách kể chuyện nhập vai và môi trường khí quyển. Unreal Engine đã đóng một vai trò quan trọng trong việc đưa thế giới chi tiết và đắm chìm của Rapture và Columbia vào cuộc sống.

6. Mortal Kombat 11

Mortal Kombat 11 & Unreal engine
Mortal Kombat 11 & Unreal engine

Mortal Kombat 11 của NetherRealm Studios là một trò chơi chiến đấu được đánh giá cao, nổi tiếng với những pha chiến đấu tàn bạo và những màn trình diễn đậm chất điện ảnh. Unreal Engine cho phép trò chơi mang đến hình ảnh tuyệt đẹp, mô hình nhân vật chi tiết và các pha chiến đấu sống động.

Đây chỉ là một vài ví dụ và Unreal Engine đã được sử dụng trong nhiều trò chơi đáng chú ý khác, bao gồm nhưng không giới hạn ở ARK: Survival Evolved, Hellblade: Senua’s Sacrifice, Sea of Thieves và Control. Tính linh hoạt của Unreal Engine cho phép các nhà phát triển tạo ra nhiều trải nghiệm trò chơi khác nhau, từ các tựa game độc lập nhỏ đến các game AAA bom tấn.

Những đối thủ lớn của Unreal engine

Unreal Engine phải đối mặt với sự cạnh tranh từ một số công cụ phát triển trò chơi khác trong ngành. Một số đối thủ cạnh tranh hàng đầu của Unreal Engine bao gồm:

1. Unity

Unity vs Unreal engine
Unity vs Unreal engine. Ảnh: LogicSimplified

Unity là một trong những đối thủ cạnh tranh chính của Unreal Engine và được sử dụng rộng rãi trong ngành phát triển trò chơi. Nó cung cấp một bộ công cụ và tính năng toàn diện để tạo cả trò chơi 2D và 3D. Unity đã trở nên phổ biến đối với các nhà phát triển độc lập nhờ giao diện thân thiện với người dùng, kho tài sản phong phú và khả năng đa nền tảng.

2. CryEngine

CryEngine vs Unreal engine
CryEngine vs Unreal engine

CryEngine là một công cụ trò chơi phổ biến khác tập trung vào việc tạo ra đồ họa trực quan tuyệt đẹp và chân thực. Nó cung cấp khả năng kết xuất tiên tiến và một hệ thống vật lý mạnh mẽ. CryEngine đã được sử dụng trong quá trình phát triển các trò chơi như sê-ri Crysis và Kingdom Come: Deliverance.

3. Godot

Godot vs Unreal Engine
Godot vs Unreal Engine

Godot là một công cụ trò chơi nguồn mở đã trở nên phổ biến nhờ tính đơn giản, linh hoạt và sự phát triển hướng đến cộng đồng. Nó cung cấp một hệ thống kịch bản trực quan và hỗ trợ phát triển trò chơi cả 2D và 3D. Bản chất nhẹ và dễ sử dụng của Godot khiến nó trở thành lựa chọn phù hợp cho các dự án vừa và nhỏ.

4. Amazon Lumberyard

Amazon Lumberyard vs Unreal engine
Amazon Lumberyard vs Unreal engine

Lumberyard là một game engine được phát triển bởi Amazon. Nó cung cấp khả năng tích hợp với nhiều Dịch vụ web Amazon (AWS) khác nhau và tập trung vào việc tạo ra trải nghiệm nhiều người chơi, sống động. Lumberyard cung cấp các tính năng nâng cao như kết xuất dựa trên đám mây và tích hợp Twitch.

5. Source Engine

Được phát triển bởi Valve Corporation, Source Engine đã được sử dụng để tạo ra một số trò chơi được giới phê bình đánh giá cao, bao gồm sê-ri Half-Life, Portal và Team Fortress 2. Source Engine cung cấp nhiều công cụ và tính năng để phát triển trò chơi, bao gồm mô phỏng vật lý tiên tiến và một hệ thống kịch bản linh hoạt.

Đây chỉ là một vài ví dụ về các đối thủ cạnh tranh hàng đầu của Unreal Engine. Mỗi công cụ có điểm mạnh, tính năng và đối tượng mục tiêu riêng và việc lựa chọn công cụ thường phụ thuộc vào các yêu cầu cụ thể của dự án và sở thích của nhóm phát triển.

Mức lương của một Game Developer sử dụng Unreal engine

Mức lương của nhà phát triển trò chơi đã thành thạo Unreal Engine có thể khác nhau tùy thuộc vào nhiều yếu tố khác nhau như kinh nghiệm, vị trí, quy mô công ty và vai trò cụ thể trong nhóm phát triển. Mức lương cũng có thể thay đổi dựa trên chuyên môn của nhà phát triển trong việc phát triển trò chơi, chẳng hạn như lập trình trò chơi, lập trình đồ họa hoặc thiết kế cấp độ.

Nói như vậy, đây là tổng quan chung về mức lương dành cho các nhà phát triển trò chơi đã thành thạo Unreal Engine:

  • Nhà phát triển trò chơi mới bắt đầu: Trong giai đoạn đầu của sự nghiệp, các nhà phát triển trò chơi thành thạo Unreal Engine có thể mong đợi kiếm được mức lương trung bình hàng năm từ 50.000 đến 80.000 đô la.
  • Nhà phát triển trò chơi cấp trung: Khi các nhà phát triển trò chơi có thêm kinh nghiệm và kiến thức chuyên môn với Unreal Engine, mức lương của họ thường tăng lên. Các nhà phát triển trò chơi cấp trung có thể kiếm được mức lương trung bình hàng năm từ 80.000 đô la đến 120.000 đô la.
  • Nhà phát triển trò chơi cấp cao: Các nhà phát triển trò chơi cấp cao đã thành thạo Unreal Engine và có nhiều kinh nghiệm trong ngành có thể kiếm được mức lương cao hơn. Mức lương trung bình hàng năm cho các nhà phát triển trò chơi cấp cao có thể dao động từ 120.000 đô la đến 150.000 đô la trở lên.

Điều quan trọng cần lưu ý là các mức lương này là gần đúng và có thể thay đổi đáng kể dựa trên các yếu tố như vị trí (với mức lương thường cao hơn ở các trung tâm phát triển trò chơi lớn như San Francisco hoặc Los Angeles), danh tiếng của nhà tuyển dụng, danh mục đầu tư và hồ sơ theo dõi của nhà phát triển, và nhu cầu chung về kỹ năng Unreal Engine trên thị trường việc làm.

Ngoài ra, điều đáng nói là việc phát triển trò chơi là một nỗ lực hợp tác và nhiều nhà phát triển làm việc như một phần của nhóm, điều này cũng có thể ảnh hưởng đến các cuộc đàm phán lương và các gói bồi thường.

GAMBA tổng hợp.