Post date: Sep 19, 2011 8:51:42 PM
Trong phần này sẽ hướng dẫn từng bước thực hiện một game nhỏ dựa trên những gì đã phát triển.
Nội dung game, cách chơi, bạn có thể tham khảo tại http://en.wikipedia.org/wiki/Fifteen_puzzle
Bước đầu tiên khi làm game không phải là nghĩ sẽ code thế nào, mà là nên bắt đầu với thiết kế của game (design) và lên kế hoạch (planing) trước. Việc thiết kế bao gồm nhiều công đoạn, cơ bản:
Trên thực tế, công việc chuẩn bị còn đòi hỏi nhiều thứ hơn những gì đã được liệt kê ở trên. Tuy nhiên, ông bà ta có câu "liệu cơm gắp mắm", có trường hợp, vì một số lý do khách quan, những bước chuẩn bị được đơn giản tới mức tối thiểu. Tuy nhiên, từ kinh nghiệm (xương máu) của mình, nếu không muốn "sa lầy" phải đảm bảo nguyên tắc nội dung game có trước và code sau, và code phải tuân thủ những gì đã thiết kế, trừ trường hợp bắt khả kháng mới thay đổi design.
Có thể nói, trong việc phát triển game (không tính tới việc kinh doanh sản phẩm), coding chỉ là 1 trong 4 thành phần: design (bao gồm nội dung/đồ họa/âm thanh), coding, QA, management. Thông thường, dưới góc nhìn một programmer, thì coding là quan trọng nhất vì công việc coding mang tính chất đặc thù và programmer có thể đóng vai trò của cả 4 bộ phận. Tuy nhiên, cách nghĩ này không hợp lý. Một programmer tốt không hẳn là người thiết kế game giỏi, vẽ giỏi, soạn nhạc giỏi, quản lý giỏi, ... và có bao nhiêu người chơi game và khen game này code tốt quá?
Áp dụng vào game demo, bước chuẩn bị được giản lượt như sau:
Giai đoạn chuẩn bị tốn không ít thời gian. Trong phạm vi bài viết, cũng như mục đích demo là chính, nên phần chuẩn bị, design được đơn giản hóa đến mức tối đa. Để có thể làm một game thực sự "chơi được", hay cao hơn là "hấp dẫn", đòi hỏi công tác thiết kế phức tạp hơn rất rất nhiều.
Ở bước này, ta sẽ thể hiện bản thiết kế một cách đơn giản nhất, bằng cách vẽ giao diện, thực hiện những tương tác chủ yếu và cơ bản của game. Bắt đầu với màn hình chính của game, ta tiến hành tuần tự:
Đến bước này, ta đã có thể hoàn thành cơ bản nội dung game, việc phát triển game hoàn thiện là tùy vào sự sáng tạo của các bạn. Tuy nhiên, ta cũng nhận thấy rằng thư viện còn thiếu 1 phần khá quá trọng phục vụ cho việc làm game là UI như button, list, check-box, drop-box, .... Chức năng này sẽ được bổ sung ở phần sau