STDIO
Tìm kiếm gần đây

    Nội dung

    Game Developer - Framework - Engine

    07/09/2015
    23/04/2016
    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.

    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ài viết liên quan

    Giới Thiệu Về Component-base Development

    Phương pháp lập trình Hướng thành phần (Component-base Development - CBD) khắc phục được các vấn đề mà Phương pháp Lập trình Hướng đối tượng (OOP) còn thiếu sót, đồng ...

    Rye Nguyen04/08/2015

    Tìm Hiểu Về Game Loop

    Game loop được xem như thành phần "trái tim" của game. Nắm rõ được cấu trúc của game loop có thể xây dựng cấu trúc code tốt hơn, xử lý các vấn đề phát sinh khi code. Bài ...

    Ngô Đình Dũ05/03/2016

    Hiện Thực Frame Per Second (FPS) Trong SDL

    Frame Per Second (FPS) là một khái niệm khá phổ biến trong game nó có ý nghĩa là số frame trên 1 giây mà máy tính có thể render, FPS càng cao thì thể hiện độ mượt của ...

    Nguyễn Nghĩa17/10/2015

    Tích Hợp Thư Viện Vật Lý Box2D Vào Project C++

    Trong quá trình phát triển game, việc viết lại các thư viện mô phỏng vật lý sao cho giống đời thực thực sự là một việc không dễ dàng, vì kiến thức về vật lý cũng như thời ...

    Nguyễn Nghĩa10/11/2015

    Cài Đặt Cocos2d-js Và Tạo Project HelloWorld

    Cocos2d là Engine phát triển game đa nền tảng không những trên mobile, từ phiên bảng Cocos2d 3.7 Cocos2d đã hợp nhất 2 bảng Cocos2d-x và Cocos2d-js lại thành một. Chính ...

    Trần Trung Hiếu17/09/2015

    Áp Dụng Kĩ Thuật OOP Trong Quá Trình Xây Dựng Framework Dựa Trên Thư Viện SDL

    Trong quá trình xây dựng Engine của bản thân mình, thông qua bài viết Khởi Tạo Môi Trường Lập Trình Game Sử Dụng Thư Viện SDL (Simple DirectMedia Layer) của Nghĩa Nguyễn ...

    Hoàng Thái09/09/2015

    Cài Đặt Cocos2d-x 3.x Trên Môi Trường MAC Và Hướng Dẫn Build Project Trên MAC Và Xcode (iOS)

    Cocos2d-x là một game engine hỗ trợ lập trình game khá mạnh mẽ hiện nay, với số lượng người dùng rất đông đảo. Qua bài viết này tôi sẽ hướng dẫn các bạn cách cài đặt và ...

    Dang Son30/11/2017

    Giới Thiệu Về Kỹ Thuật Phần Mềm – Software Engineering

    Software Engineering là một phần của System Engineering. Bởi vì, System Engineering liên quan đến mọi mặt của việc phát triển “hệ thống dựa trên máy tính” (Computer-based ...

    Trung Nguyễn22/09/2014

    Khởi Tạo Môi Trường Lập Trình Game Sử Dụng Thư Viện SDL (Simple DirectMedia Layer)

    Trong quá trình xây dựng engine game, tôi cần một số thư viện cung cấp những hàm API để thao tác với hệ thống cấp thấp bên dưới như âm thanh, bàn phím, chuột và các hệ ...

    Nguyễn Nghĩa08/10/2015

    Cài Đặt Cocos2d-x 3.x Trên Môi Trường Windows Và Hướng Dẫn Build Project Trên Android

    Cocos2d-x là một engine hỗ trợ lập trình game khá mạnh mẽ hiện nay. Phiên bản mới nhất tại thời điểm này là bản 3.4. Qua bài viết này tôi sẽ hướng dẫn các bạn cách cài ...

    Ryan Lê15/02/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    [email protected]

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020