Game Engine là gì? Game Engine hoạt động như thế nào

0
41

Trước khi tìm hiểu về Game engine là gì? Game Engine dịch tiếng anh ra là “Công cụ trò chơi”, Còn Engine là “động cơ”  Chà, bạn nghĩ đến điều gì khi đọc từ “engine?” Nếu bạn giống tôi, đó là hình ảnh của kim loại và bu lông nằm ở trung tâm của một chiếc xe. Thứ gì đó có thể chuyển đổi điện năng hoặc quá trình đốt cháy thành năng lượng – trái tim đang đập của ô tô của chúng ta.

Động cơ là tổng hợp của nhiều bộ phận. Và mỗi thành phần, bất kể lớn, nhỏ, hay sai lệch, đều phục vụ một mục đích cụ thể và quan trọng trong việc cho phép động cơ hoạt động kỳ diệu cơ học của nó.

Đó chính xác là điều mà các nhà phát triển trò chơi hình ảnh hy vọng sẽ sử dụng liên quan đến “Game Engine”. Game engine là bộ sưu tập các thư viện mã và khuôn khổ mang trò chơi vào cuộc sống. Mặc dù chúng thường vô hình, nhưng các công cụ trò chơi luôn làm việc chăm chỉ miễn là trò chơi đang chạy.

Game Engine là gì?

Như đã đề cập ở trên, game engine là tập hợp mã dưới dạng thư viện và khuôn khổ. Nhưng chính xác thì điều đó có nghĩa là gì? Hãy chia nhỏ một số thuật ngữ phổ biến để chúng ta có thể nhìn thấy cả rừng VÀ cây. Lưu ý rằng những giải thích này được đơn giản hóa và đây chỉ là một cái nhìn tổng quan.

Một dòng mã được gọi là một câu lệnh . Các câu lệnh là những chiếc lá và cành riêng lẻ trong rừng của chúng ta. Chúng là các yếu tố bao gồm các cấu trúc lớn hơn mà chúng ta sẽ thảo luận.

Nhận đủ các câu lệnh ở một nơi và bạn có một thư viện. Đây là những cái cây.

Công cụ trò chơi mã

Thư viện là tập hợp mã tập trung vào việc cung cấp giải pháp cho các vấn đề cụ thể. Bạn có thể đã nghe nói về các tệp “.dll” của chương trình — từ viết tắt đó là viết tắt của “thư viện được liên kết động” và đó chính xác là loại thư viện mà chúng ta đang nói đến.

Nếu bạn có một vấn đề cần giải quyết hoặc nhiệm vụ cần hoàn thành, có một thư viện cho điều đó. Một trong những thư viện được sử dụng rộng rãi và phổ biến nhất hiện nay là OpenGL (Open Graphics Library). Như tên của nó, nó tập trung vào việc cung cấp một tiêu chuẩn đồ họa dễ sử dụng cho nhiều nền tảng khác nhau.

Lấy một số thư viện, trộn chúng lại với nhau, và bạn đã có được một khuôn khổ. Đây là một khoảng trống nhỏ.

Các khung công tác là các bộ sưu tập mã cấp cao hơn các thư viện. Chúng thường kết hợp nhiều thư viện và các thành phần chi tiết khác để tấn công các vấn đề khác nhau cùng một lúc, hướng chúng đến việc tạo ra một trải nghiệm cụ thể. Đây là nơi chúng ta bắt đầu thấy động cơ proto xuất hiện từ quả trứng tục ngữ.

Một khuôn khổ phổ biến là .NET Framework của Microsoft , cung cấp cho lập trình viên các công cụ kỹ thuật số để xử lý mọi thứ, từ truy vấn cơ sở dữ liệu nội dòng đến mã đa luồng, không đồng bộ.

Microsoft NET Framework

Tất cả chức năng này tập trung vào một mục tiêu cụ thể. Nhưng mục tiêu này có thể rộng hơn và khó xác định hơn mục tiêu của thư viện. Vì vậy, giả sử rằng .NET cho phép “trải nghiệm năng động, di động và mạnh mẽ cho người dùng và nhà phát triển thông qua các tính năng hiện đại, cấp cao” và tiếp tục.

Tất nhiên, có những dữ liệu và cấu trúc mã khác mà chúng ta có thể thảo luận, nhưng tại thời điểm này, chúng ta đã nói về những cái cây đủ rồi. Hãy nói về khu rừng.

Công cụ trò chơi là tập hợp của tất cả các cấu trúc trước đó và sau đó là một số cấu trúc. Mỗi công cụ chứa đầy thư viện, khuôn khổ và các gói mã khác để giao tiếp với phần cứng và các tính năng xử lý như đồ họa, âm thanh, đầu vào, mạng, vật lý, AI, v.v.

Ví dụ về Unreal Engine
Tín dụng hình ảnh: Unreal Engine

Ngày trước, các công cụ trò chơi tùy chỉnh được xây dựng cho mỗi trò chơi. Hơn nữa, chúng chỉ hoạt động trên một phần cứng cụ thể, như Atari 2600 hoặc NES. Nhưng thời gian trôi qua, sự phát triển của các tiêu chuẩn mới và các kiến ​​trúc chung dẫn đến các hệ thống và chuỗi hệ thống khác nhau, tất cả đều có thể dùng chung mã. Và vì vậy game engine được sinh ra như một vấn đề hiệu quả: viết mã một lần, chạy bất cứ nơi nào bạn có thể và sử dụng lại mã cho các trò chơi trong tương lai.

Game Engine hoạt động như thế nào?

Tất cả các thư viện và khuôn khổ này hợp tác với nhau và kết quả là trò chơi bạn nhìn thấy trên màn hình, nghe qua loa và thao tác với đầu vào của bạn. Mỗi thành phần của engine đều giao tiếp giữa phần cứng, hệ điều hành và chính engine để tạo ra một kết quả. Những kết quả này tạo ra một trò chơi từ Tether kỹ thuật số.

Trò chơi Cuphead
Dự án đã hoàn thành

Ví dụ: OpenGL dịch dữ liệu đại diện cho các đối tượng 2D hoặc 3D thành các hướng dẫn để GPU hiển thị chúng. FFmpeg biến âm thanh đã ghi thành bit và byte và quay lại một cách nhanh chóng. PhysX xử lý logic và dữ liệu đằng sau các tương tác vật lý để mô phỏng các đối tượng ảo có các đặc tính trong thế giới thực như khối lượng và quán tính. Và đó chỉ là một vài ví dụ nổi bật từ các hệ thống con Engine phổ biến.

Có hàng trăm, nếu không phải hàng nghìn, thư viện và khuôn khổ đi vào các trò chơi yêu thích của bạn và công cụ của chúng – và đó là chưa nói gì đến các thành phần được phát triển rõ ràng cho các trò chơi riêng lẻ. Đúng vậy: ngay cả một Engine cũng không thể bao phủ tất cả các căn cứ.

Thống nhất
Tín dụng hình ảnh: Unity

Ví dụ về Game Engine phổ biến

Với tính di động và khả năng tái sử dụng, các Engine hiện đại được điều chỉnh và phù hợp với nhiều tình huống khác nhau. Nhưng có một số điểm nổi bật mà bạn sẽ thấy nhiều lần.

Không có thật
Biểu trưng thống nhất

Unity là một trong những công cụ trò chơi phổ biến ngày nay, đặc biệt là trong lĩnh vực độc lập. Trong số các nhà phát triển AAA, Unreal Engine phổ biến hơn, với độ trung thực hình ảnh cao hơn và quy trình làm việc mạnh mẽ hơn giúp tận dụng tối đa một nhóm phát triển lớn. Nếu bạn là fan của Bethesda, chắc chắn bạn đã từng gặp phải engine Gamebryo, cung cấp năng lượng cho các tựa game như Morrowind, Oblivion và Fallout 3. Source engine là đứa con của Valve, cung cấp năng lượng cho mọi thứ từ Half-Life 2 đến Portal 2 và Left 4 Dead .

Và đó chỉ là một vài Engine phổ biến nhất trên thị trường. Chắc chắn có hàng tá cái khác, và mỗi cái đều làm một cái gì đó độc đáo, đặc biệt, hoặc kỳ quặc mà phần còn lại thì không.

Ví dụ về các công cụ làm trò chơi phổ biến

Mỗi công cụ tự hào có một bộ công cụ phát triển, được gọi là Bộ phát triển phần mềm (SDK). Thông thường, SDK chứa một bộ sưu tập các khung và thư viện khác (bao gồm cả mã nguồn cho engine trong một số trường hợp) được thiết kế để tạo và chuyển đổi nội dung để sử dụng với engine. Một số khung trong SDK có thể là API để tương tác với công cụ, trong khi những khung khác có thể là giải pháp độc lập cho các vấn đề khác trong quy trình phát triển.

Đối với Unity, công cụ phát triển chính là Unity Editor và nó được trang bị để nhập và làm việc với các nội dung từ nhiều định dạng tệp tiêu chuẩn. Tất nhiên, Unreal Editor dành cho Unreal Engine và hoạt động theo cách tương tự. Một số công cụ như Gamebryo và Nguồn không có trình chỉnh sửa toàn diện, họ chọn cung cấp các công cụ độc quyền chỉ dành cho thiết kế cấp độ – Bộ công cụ xây dựng và Trình chỉnh sửa búa van, tương ứng.

mô hình 3d
Tài sản trực quan

Trong mọi trường hợp, bạn có thể sẽ tạo nội dung từ bên ngoài, sau đó chuyển đổi và nhập nội dung bằng SDK. Tuy nhiên, các trình chỉnh sửa có thể mở rộng hiện đại cho các công cụ như Unity và Unreal đang thấy một sự thúc đẩy hướng tới việc cho phép tạo một số nội dung nhất định ngay trong trình chỉnh sửa.

Các tính năng như Đồ thị Shader của Unity và Trình chỉnh sửa Niagara của Unreal – cho phép tạo các trình tạo bóng và hiệu ứng hình ảnh tương ứng – có nghĩa là số lượng các chương trình khác nhau bạn cần trong quy trình phát triển của mình đang giảm dần theo thời gian. Nhưng một số thiết kế đặc biệt và được thiết kế tốt đến mức không thể thay thế chúng bằng một biến thể tổng quát.

Đồ thị Unity Shader
Tín dụng hình ảnh: Đồ thị Shader

Một số công cụ phát triển bên ngoài phổ biến mà bạn có thể đã nghe nói đến bao gồm:

  • Adobe Photoshop và GNU (dành cho đồ họa 2D)
  • Maya và Máy xay sinh tố (để tạo mô hình 3D)
  • Audacity và Adobe Audition (dành cho âm thanh)
  • Sony Vegas và Adobe Premiere (dành cho video)
  • Microsoft Visual Studio và IntelliJ Idea (để lập trình)

Lời khuyên cho người mới bắt đầu

Vì vậy, bạn muốn lấy một Engine và bắt đầu tạo trò chơi cho chính mình? Điều đó thật tuyệt, và tôi đặc biệt khuyến khích điều đó – dù là để giải trí hay điều gì đó nghiêm túc hơn. Tuy nhiên, hãy dành một chút thời gian để xem xét lời khuyên này, vì nó có thể giúp bạn tiết kiệm một số rắc rối trên đường:

Bắt đầu một cách trung thực. Đừng đi vào phát triển trò chơi mong đợi để trả các hóa đơn từ đi. Bạn sẽ không bắt đầu kiếm tiền chỉ sau một đêm với tư cách là một nhà phát triển độc lập. Thiết kế trò chơi là một hình thức nghệ thuật hơn bất cứ thứ gì khác. Không ai bắt đầu vẽ tranh hoặc điêu khắc bởi vì họ tin rằng họ sẽ “tạo ra nó” và kiếm được hàng triệu. Bạn trở thành một nghệ sĩ để sáng tạo, nắm bắt cảm xúc, thể hiện điều gì đó cơ bản về cuộc sống.

Nghệ sĩ chết đói là một khuôn mẫu có lý do. Điều đó nói rằng, đừng để điều đó làm bạn nản lòng. Tạo trò chơi là một sở thích vô cùng thú vị và thỏa mãn / công việc phụ / công việc toàn thời gian tiềm năng có thể giúp bạn phát triển các kỹ năng thực sự và có thể bán được.

Thiết kế trò chơi
Tín dụng hình ảnh: Đại học Lindenwood

Bắt đầu rẻ. Một số Engine có kèm theo giấy phép trị giá hàng nghìn đô la, mặc dù thông thường trong ngành các Engine lớn cung cấp phiên bản miễn phí cho “những người có sở thích và nhà phát triển độc lập”. Chỉ cần đảm bảo rằng bạn tuân thủ các quy tắc và quy định của họ.

Và nếu bạn không có kỹ năng để tạo ra tài sản của riêng mình, đừng đổ mồ hôi. Có rất nhiều nơi bạn có thể tìm thấy tài sản miễn phí trên web. Một số hoàn toàn miễn phí và một số chỉ yêu cầu đổi lại. Đảm bảo rằng bạn tuân thủ các quy định của thỏa thuận cấp phép nhưng hãy thoải mái sử dụng những quy định đó khi bạn bắt đầu. Bạn có thể tự làm sau.

Khởi đầu nhỏ. Bạn có thể đã có một trò chơi trong tâm trí. Nó có thể là thứ bạn chưa xem, hoặc trò chơi mà bạn ước mình có thể chơi. Hoặc có lẽ nó chỉ đơn giản là một biến thể của trò chơi bạn đã chơi mà bạn nghĩ có thể hay hơn. Và đó là một khởi đầu tuyệt vời.

Dù đó là gì, hãy thực hiện ước mơ đó, đánh dấu vào ô “Bảo tồn tỷ lệ khung hình” và thu nhỏ. Bạn có thể có cùng một ước mơ, chắc chắn – chỉ nhỏ hơn một chút. Bạn sẽ tiết kiệm cho mình rất nhiều thử thách, khổ nạn và đau khổ bằng cách làm điều đó ngay bây giờ thay vì sau này.

Tạo một trò chơi là một thử thách lớn, đặc biệt là khi bạn đang học hỏi. Đừng khó khăn với bản thân, hãy thu nhỏ tham vọng của bạn và làm một cái gì đó đơn giản cho người mới bắt đầu. Bạn có thể tạo bước mới cho Civilization cho lượt đi thứ hai của mình. Hiện tại, hãy thử một bản sao Breakout.

Hãy xem các API công cụ khác nhau và xem API nào phù hợp nhất với bạn. Nếu bạn chỉ mới bắt đầu lập trình, “không có cái nào có ý nghĩa cả” là một câu trả lời hoàn toàn hợp lý. Truy cập Google và YouTube để tìm kiếm các hướng dẫn cho công cụ của bạn hoặc có thể là các hướng dẫn cho ngôn ngữ lập trình cốt lõi của công cụ của bạn. Chỉ cần bắt đầu nhỏ và học ngôn ngữ của máy tính từng chút một.

LEAVE A REPLY

Please enter your comment!
Please enter your name here