-->

  • Learning Construct 2 - Chương 8 - Phần 2



    2. Xem các giá trị thuộc tính


    Để sử dụng Watch tab, trước hết bạn phải chọn thuộc tính mà bạn muốn xem. Bạn có thể làm điều này bằng cách kích vào biểu tượng mắt bên cạnh mỗi thuộc tính.

    Sau đó, bạn có thể thấy thuộc tính được xem ở Watch tab:

    Sau đó, bạn có thể thấy tất cả các thuộc tính đã xem, được phân loại theo đối tượng nào chứa thuộc tính. Khi trò chơi được tiếp tục, bạn có thể thấy sự thay đổi ở những giá trị này trong thời gian thực; đây là cách hay để kiểm tra nếu bạn nghĩa rằng có nhiều hơn một giá trị của thuộc tính cần kiểm tra. Bạn có thể xóa một thuộc tính ở Watch tab bằng cách kích vào biểu tượng gạch chéo ở phái bên tay phải của thuộc tính:


    3. Cấu hình PU


    Tab thứ 3 của công cụ gỡ lỗi là Profile tab; nó sẽ cung cấp lời giải thích chi tiết hơn về hiệu năng của CPU. Trò chơi phải chạy liên tục để có thể thu thập dữ liệu. Sau đó nó cho thấy ước tính thời gian CPU được sử dụng là bao nhiêu trong mỗi quá trình. Các hồ sơ cập nhật dữ liệu cho thấy mỗi một giây, giá trị được hiển thị cho 2 giây trước đó.


    Hãy nhớ rằng, việc sử dụng CPU chỉ là ước tính, do đó, các giá trị hiển thị trong hồ sơ không phải lúc nào cũng chính xác. Các chi tiết được trình bày ở đây chỉ nói về các quá trình liên quan đến JavaScript, trong khi CPU có thể làm việc với các tác vụ khác, chẳng hạn như xử lí âm thanh. Ngoài ra hồ sơ không tính toán thời gian nó lấy cho CPU để biểu diễn trò chơi trên màn hình.

    Mặc dù nhược điểm của nó, hồ sơ có thể được sử dụng để xác định những nơi nó cần để tối ưu hóa nếu có rắc rối về hiệu năng. chúng ta sẽ thảo luận chi tiết về tối ưu hóa sau.

    4. Đọc hồ sơ


    Được rồi, tôi nghĩ sẽ rất khó để biết hồ sơ hiển thị những gì chỉ với hình ảnh trước, chính vì vậy tôi sẽ chỉ cho bạn biết cách đọc hồ sơ. Hồ sơ chia thành vài phần hiển thị nơi quy trình trò chơi của bạn đang diễn ra. Các phần đó như sau:
    • Events: điều này cho bạn biết bạn dành bao nhiêu thời gian chạy logic trong event sheet.
    • Physics simulation: cái này trình bày thời gian chạy các tính toán vật lí trong game. Bởi vì vật lí có thể tăng cường độ CPU, chú ý tới điều này nếu bạn có nhiều đối tượng vật lí.
    • Draw call: điều này cho thấy phải mất bao lâu cho CPU để đưa ra giải thích các hướng gọi, nó ko bao gồm thời gian nó lấy cho GPU để vẽ đồ họa. Thỉnh thoảng, vẽ các hướng gọi mất nhiều thời gian, đặc biệt nếu bạn có nhiều đối tượng được hiển thị trên màn hình cùng một lúc.
    • Engine: đây là thời gian cho việc tính toán C2, không bao gồm bất cứ thứ gì được kể trước đó. Điều này nghĩa là chăm sóc các hành vi của đối tượng khác nhau và các quá trình engine khác trong background.


    WAITING FOR LUV
    Bạn có muốn cải thiện khả năng thiết kế đồ họa của mình? Chắc hẳn các bạn cũng biết, nếu các dòng code là linh hồn của một trò chơi, thì đồ họa chính là bộ mặt của trò chơi đó. Đồ họa đẹp, dễ nhìn sẽ khiến trò chơi của bạn tăng tỉ lệ hấp dẫn người xem đến 90%. Hiện tại có hai công cụ hỗ trợ thiết kế đồ họa game tiện nhất mà mình biết, đó là Photoshop và Illustrator. Mình sẽ cố gắng tìm kiếm và chia sẻ các đồ họa game miễn phí cho các bạn tại blog này; tuy nhiên, một trò chơi mà 100% do chính mình tạo ra vẫn hơn là đi cóp nhặt hình ảnh từ nơi khác đúng không nào. Tiện đây, mình có chia sẻ một khóa học thiết kế đồ họa Game 2D cho Mobile. Các bạn có thể tham khảo dưới đây để được giảm 40% học phí nhé.


    5. Sơ lược hiệu suất

    Ở phía trên cùng bên trái của công cụ gỡ lỗi, bạn có thể thấy sơ lược hiệu suất của trò chơi. Bạn có thể sử dụng cái này để đo tốc độ trò chơi của bạn nhanh như thế nào. Các gái trị như sau:
    • The objects cout: đây là tổng số các đối tượng được tạo, cố không làm quá nhiều đối tượng vì nó có thể làm giảm hiệu suất.
    • The framerate: cái này hiển thị trò chơi chạy bao nhiêu lần trên giây; các trò chơi nên chạy ở 60 fps, khoảng từ 30 đến 60 là tốt.
    • The estimated CPU time: cái này ước tình thời gian CPU được sử dụng trong game. Đây chỉ là ước tính và không phải lúc nào cũng chính xác. Nếu bạn thấy số này đi lên, điều này có nghĩa là CPU đang phân bố rất nhiều năng lượng để thực hiện logic của trò chơi. Bạn có thể cố gắng làm những thứ hiệu qả hơn bởi không làm qá nhiều thứ ở mỗi lần tích.
    • The estimated image-memory use: đây là ước tính có bao nhiêu không gian trong bộ nhớ được sử dụng bởi hình ảnh trong game. Cái này chỉ trình bộ nhớ được sử dụng bởi các hình ảnh đã tải, bởi vì những hình ảnh sử dụng nhiều không gian nhất trong một trò chơi. Chú ý rằng cái này ko trình bộ nhớ được sử dụng bởi âm nhạc và hiệu ứng âm thanh. Nếu con số cao, tức là bạn đang sử dụng quá nhiều hình ảnh lớn có thể làm chậm trò chơi, chuyển sang những hình ảnh nhỏ hơn là ý tưởng hay.
    • Thư renderer: cái này nói cho bạn biết bạn sử dụng loại báo cáo nào trong C2. Để hiệu suất nhanh hơn, bạn nên sử dụng webgl thay cho canvas2d. Nhưng nếu thiết bị hoặc máy tính mà trò chơi chạy ko hỗ trợ webgl, C2 sẽ trở lại canvas2d.

    6. Sử dụng các điểm ngắt


    C2 có một công cụ gỡ lỗi mà các ngôn ngữ lập trình truyền thống cũng có: breakpoint. Breakpoint là một tính năng tân tiến có thể giúp gỡ lỗi trong game của bạn. Breakpoint dừng việc chạy game ngay trước sự kiện đánh dấu với nó được thực hiện và cho phép bạn kiểm tra cẩn thận thuộc tính của đối tượng trước khi tiếp tục.

    Breakpoint ko có sẵn trong bản free.

    Để sử dụng breakpoint bạn cần kích chuột phải vào một sự kiện, một điều kiện của sự kiện hay một hành động của sự kiện mà bạn muốn kiểm tra. Một cửa sổ pop up sẽ xuất hiện và chọn thiết lập Toggle breakpoint. Bạn cũng có thể xóa một breakpoint được áp dụng trước đó theo cách thức được chỉ trong màn hình sau:


    Bạn có thể áp dụng breakpoint trong sự kiện hoặc hành động ngoại trừ:
    • Trigger
    • Sự kiện phụ của trigger
    • Loop (các vòng lặp)

    Bạn có thể áp dụng cho nó bất cứ sự kiện phụ nào nếu nó ko dưới 1 trigger. Khi bạn áp dụng một breakpoint tới một sự kiện, hệ thông breakpoint sẽ được hiển thị bên cạnh nó:


    Các breakpoint không hoạt động nếu bạn chạy layout bình thường, chúng chỉ hoạt động nếu bạn sửa lỗi layout. Tôi đã nói rằng breakpoint dừng game trước khi sự kiện đánh dấu với nó được chạy; trong trường hợp các sự kiện, điều này nghĩa là trò chơi sẽ dừng trước khi các điều kiện được đánh giá. Trình gỡ lỗi ko biết cả điều kiện được đáp ứng và sự kiện đang chạy hay ko, bạn phải tiếp tục thực hiện để có thể biết.

    Khi trình gỡ lỗi gặp một breakpoint, các nút Pause và Resume sẽ thay đổi thành Continue và Next. Nút Continue làm cho game chạy lại đến khi nó qua một breakpoint khác trong khi nút Next đi tiếp một bước tại thời điểm dừng tới sự kiện tiếp theo. Cái này rất hữu dụng khi bạn muốn kiểm tra thay đổi trong tab Inspector từng bước một.


    Khi trò chơi bị dừng lúc gặp breakpoint, sự kiện tương ứng sẽ được vạch ra trong một hình chữ nhật gạch đỏ để chỉ ra rằng đó là một breakpoint được thử nghiệm.


    Nếu bạn áp dụng một breakpoint vào điều kiện của sự kiện, sau đó trò chơi sẽ dừng trước khi sự kiện được kiểm tra, và C2 sẽ không biết điều kiện được đpá ứng hay ko. Nếu bạn có một sự kiện với hơn một điều kiện, và bạn đặt một breakpoint ở điều kiện thứ hai, nó sẽ được đánh giá sau khi điều kiện một được kiểm tra. Nếu điều kiện một không được đáp ứng, breakpoint ở điều kiện thứ 2 sẽ ko được kiểm tra, và C2 sẽ tiếp tục sự kiện tiếp theo.




    Nếu bạn đặt một breakpoint trên một hành động, trò chơi sẽ tạm dừng sau khi sự kiện được đánh giá và tất cả các điều kiện được đáp ứng trước khi hành động đầu tiên được thực hiện. Đặt một breakpoint trên hành động đầu tiên trong một sự kiện là tốt, bởi vì nó chắc chắn rằng tất cả các điều kiện được đáp ứng trước khi dừng trò chơi trên một breakpoint.




    Nơi cuối cùng bạn có thể áp dụng breakpoint là sự kiện phụ. Giống như khi breakpoint được áp dụng cho một hành động, đặt các breakpoint trong sự kiện phụ chỉ dừng trò chơi sau khi sự kiện được đánh giá và tất cả điều kiện được đáp ứng. Nếu điều kiện không được đáp ứng, C2 sẽ tiếp tục cho sự kiện tiếp theo.


    7. Mức độ khác nhau của lỗi


    Trước khi kết thúc chương này, chúng ta sẽ thảo luận chút về mức độ khác nhau của lỗi. Hầu hết các nhà phát triển game đều dùng cái này để phân loại lỗi mà họ gặp phải trong trò chơi của họ và dùng nó làm cơ sở cho những lỗi cần chăm sóc đầu tiên. Theo mức độ, được sắp xếp từ quan trọng đến bình thường như sau:
    • Critical bugs: (lỗi nghiêm trọng) Đây là những lỗi sẽ làm trò chơi giật lag hoặc đơ hoặc làm cho người chơi không thể tiếp tục trò chơi được nữa. Những lỗi này có thể khiến cấp độ tiếp theo ko load được hay dừng hoạt động của nút Play trên màn hình.
    • Major bugs: (lỗi chính) những lỗi này gây khó khăn cho người chơi để chơi game. Đây có thể là dưới hình thức một nhân vật ngẫu nhiên dừng tấn công hay một khả năng nhất định không làm việc, hoặc kẻ thù không chết khi thanh HP của chúng dưới 0.
    • Minor bug: (lỗi nhỏ) đây là những lỗi không gây ra rắc rối trong game nhưng vẫn đáng chú ý. Những lỗi này có thể gây hiển thị sai đồ họa hay kẻ địch bất động.

    Sửa lỗi luôn luôn là quan trọng, bắt đầu từ những lỗi quan trọng đến lỗi nhỏ, không chỉ thế, sửa những lỗi quan trọng khiến việc test game dễ dàng hơn.


    Tổng kết


    Bạn đã học được rất nhiều kĩ năng quan trọng trong chương này, nhất là sửa lỗi. Biết về cách gỡ lỗi trong game vô cùng hữu ích, nhưng tất nhiên vẫn ko tốt bằng việc bạn viết đúng code ngay từ lần đầu ^^. Ở chương tiếp theo, ta sẽ học những thực hành tốt nhất C2, bao gồm tránh lỗi và cải thiện hiệu suất trò chơi của bạn.


    Bản dịch do construct2vn.ga thực hiện
    Ai sao chép hay chia sẻ hãy ghi nguồn và đưa link www.construct2vn.ga vào đầu bài chia sẻ nhé


  • DONATE TINH THẦN CHO BLOG TẠI ĐÂY

    Nếu các bạn thấy blog có ích hãy ủng hộ blog hàng ngày tại đây. Chỉ cần thi thoảng chơi game và tìm bug cho tụi mình là được. Đây là ủng hộ tinh thần, không phải tiền mặt, vật chất và không bắt buộc. Xin chân thành cảm ơn ahihi. Chúc các bạn một ngày zui zẻ.

    TELEPHONE

    02273 7x2 xxx
    02273 xxx 27x

    MOBILE

    0162 x15 xx33