Trò chơi điện tử được lập trình như nào vậy?

A: Chris Nash

==========

Giống y như những chương trình khác, trừ duy nhất một điểm khác biệt lớn.

Đầu tiên, ta có thể lập trình game bằng mọi loại ngôn ngữ. Đúng vậy, C++ vẫn đang là ông vua, nhưng game vẫn có thể được xây dựng bằng Java, C#, JavaScript, Python, Go,…. Và tôi khuyên bạn nên tìm hiểu một trong những ngôn ngữ như vậy nếu như bạn mới đang bắt đầu tìm hiểu về phát triển game, đặc biệt là Java và C#.

Giờ thì, trò chơi điện tử khác với các chương trình truyền thống ở chỗ nào?

Hầu hết các chương trình mà bạn sử dụng hàng ngày được thiết kế để phản hồi các sự kiện (event). Ví dụ, một trình xử lý văn bản sẽ làm gì đó khi bạn nhấn 1 nút trên bàn phím. Khi bạn ấn Q, nó sẽ hiện thị chữ Q trên màn hình văn bản. Toàn bộ chương trình được thiết kế để phản hồi các sự kiện. Điều tương tự cũng diễn ra đối với các chương trình thông thường khác.

Tuy nhiên, trò chơi điện tử thì sử dụng một thứ gọi là vòng lặp game (game loop). Nó vẫn tiếp tục hoạt động dù có sự kiện gì diễn ra hay không. Đúng, chúng có phản hồi lại các sự kiện, nhưng game vẫn sẽ tiếp tục làm việc dù có hay không có dữ liệu đầu vào (input)

Để lấy ví dụ, một trò chơi bắn súng góc nhìn thứ nhất (FPS) sẽ tiếp tục tạo ra kẻ thù và môi trường xung quanh dù bạn, người chơi, vẫn đang đứng yên không làm gì cả. Kẻ thù sẽ tiếp tục tiến tới chỗ bạn, gió vẫn thổi, cỏ cây hoa lá vẫn đung đưa. Việc bạn đang đứng như trời trồng không ngăn cản được game hoạt động.

Bên dưới là một đoạn giả mã (pseudo code) mô tả một vòng lặp game:

while(game not done )

{

enemies.think()

enemies.move()

player.checkForMovement()

checkForCollisions()

playSounds()

render() // draw the screen

}

Tuy đơn giản nhưng đó chính là ý tưởng cơ bản. Hầu hết những game hiện đại sẽ sử dụng một vài dạng vòng lặp trên. Trò chơi vẫn sẽ tiếp tục, dù người chơi có làm gì hay không.

Leave a Reply

Your email address will not be published. Required fields are marked *