Trong một thời gian dài tôi băn khoăn không hiểu cái gì có thể cực đắt, cực hiện đại, có thể cực kì vô dụng. Và rồi tôi phát hiện ra máy tính là một cái máy ngu ngốc có khả năng làm những việc thông minh phi thường, trong khi lập trình viên là những người thông minh có khả năng làm những việc ngu ngốc phi thường. Bill Bryson
STDIO Trong quá trình học tập ở trường, tôi thấy rằng các bạn của mình gặp khó khăn trong việc phân biệt giữa việc lập trình Game với Framework ( hoặc Engine ). Tôi mong rằng qua bài viết này các bạn có một cái nhìn rõ ràng hơn về vấn đề này để làm việc hiệu quả nhất.
Nội dung bài viết

Giới thiệu

Game là một trong những hình thức giải trí không thể thiếu của chúng ta. Và đối với lập trình viên thì Framework hoặc Engine là một công cụ hỗ trợ để làm Game một cách hiệu quả nhất.

Tiền đề bài viết

Trong quá trình học tập ở trường, tôi thấy rằng các bạn của mình gặp khó khăn trong việc phân biệt giữa việc lập trình Game với Framework ( hoặc Engine ). Tôi mong rằng qua bài viết này các bạn có một cái nhìn rõ ràng hơn về vấn đề này để làm việc hiệu quả nhất.

Đối tượng hướng đến

Bài viết dành cho tất cả mọi người.

Game Developer

Khái niệm

Là người hiện thực hóa các ý tưởng của Game Designer đã đề ra và xây dựng – phát triển nó thành một sản phẩm.

Ở trong bài viết này, giả sử Game Designer đã yêu cầu tôi xây dựng một game chạy – nhảy – bắn. Và công việc mà tôi sẽ làm là như sau:

  • Dựa vào các yêu cầu của Game Designer tôi sẽ phân tích các đối tượng cần phải có trong game.
  • Từ kết quả phân tích đó, tôi xây dựng thành sơ đồ kế thừa để lập trình Game một cách dễ dàng và thuận tiện nhất.
  • Sau khi đã có sơ đồ, dựa vào yêu cầu cụ thể của Game Designer đối với từng đối tượng mà tôi sẽ phân tích và xử lý logic cho các đối tượng đó.

Ví dụ minh họa

Tôi sẽ lấy game Contra là game mà Designer đã đã đưa ra ý tưởng và tôi sẽ hiện thực lại:

  • B1: Phân tích các đối tượng cần phải có trong game.

Game Contra

Nhân vật

Quái vật

Đạn

Hiệu ứng

Bill

Lính

Đạn của nhân vật

Nổ cầu

Lance

Súng tự động

Đạn của quái vật

Quái chết

 

  • B2: Xây dựng thành sơ đồ kế thừa.

ss_1

  • B3: Phân tích và xử lý logic.
    • Phân tích Logic:
      • Lớp Character là lớp sẽ xây dựng nên nhân vật chính của game Contra.
      • BillLance giống nhau về xử lý logic nhưng chỉ khác nhau về hình ảnh nên chúng ta không cần phải tạo nhiều lớp kế thừa từ Character mà chỉ cần một lớp duy nhất là Character.
      • Character cần xử lý theo sự kiện từ bàn phím và Camera sẽ tập trung vào Character này. ( Lưu ý: Camera là lớp hỗ trợ để xây dựng Game. )
      • Character sử dụng nhiều loại đạn khác nhau từ lớp Bullet.
    • Xử lý Logic:
      • Khởi tạo lớp Character với Constructor phù hợp.
      • Khai báo các thuộc tính và phương thức cần thiết cho việc xử lý Logic của các đối tượng khác trong Game.

Lưu ý: Ở trong ví dụ này, tôi không chỉ rõ quá trình lập trình ra sao mà chỉ đưa ra các hướng dẫn để từ đó các bạn có thể tự lập trình được với Game của mình.

Framework

Khái niệm

Là công cụ mà các bạn tự xây dựng để hỗ trợ trong quá trình xây dựng và phát triển game của mình.

Ví dụ: Trong quá trình học tập của mình, tôi đã xây dựng một Framework để xây dựng Game đơn giản của mình. Tuy tốn thời gian, nhưng tôi đã xây dựng được một framework riêng biệt của mình và làm chủ nó hoàn toàn.

Ưu điểm

Độ phù hợp cao với Game mà các bạn cần xây dựng.

Dễ dàng chỉnh sửa và nâng cấp các tính năng.

Nhược điểm

Giới hạn trong việc xây dựng một Game duy nhất.

Tốn thời gian và kinh phí để xây dựng Framework.

Engine

Khái niệm                                                  

Là công cụ cung cấp các điều kiện cần thiết để lập trình viên có thể xây dựng và phát triển Game.

Ví dụ: Cocos2dx là một Engine hỗ trợ mạnh mẽ cho cho quá trình lập trình Game. Nhưng đồng thời cũng rất khó để hiểu được nên tảng bên dưới.

Ưu điểm

Phù hợp với tất cả các loại Game và nền tảng.

Đầy đủ  các tính năng cần thiết để xây dựng Game.

Nhược điểm

Không thể chỉnh sửa hoặc nâng cấp các tính năng của Engine.

Tùy loại Engine mà có thể tốn tiền mua bản quyền hoặc không.

Không thể hiểu rõ nền tảng bên dưới.

Chia sẻ

Trong quá trình xây dựng Framework, các bạn cần phân biệt rõ ràng giữa Framework và Game. Nghĩa là, Framework không được chưa bất kì thành phần nào của Game.

Trong quá trình sử dựng Engine, các bạn cần tìm hiểu xem các thành phần mình cần làm có được Engine có hỗ trợ hay không rồi hãy xây dựng riêng.

 

Bạn cần hỗ trợ các dự án kết nối không dây?

Quí doanh nghiệp, cá nhân cần hỗ trợ, hợp tác các dự án IoT, kết nối không dây. Vui lòng liên hệ, hoặc gọi trực tiếp 0942.111912.

  • TỪ KHÓA
  • Arduino
  • ESP32
  • ESP8266
  • Wifi
  • Bluetooth
  • Zigbee
  • Raspberry Pi
THẢO LUẬN
ĐÓNG