-->

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



    Chương 9. Làm chủ các best practice


    Best Practice”  tập hợp những kỹ thuật và cách làm mà đã được nghiên cứu, chứng minh trong thực tế, khi áp dụng nó sẽ làm cho sản phẩm của chúng ta tốt hơn, tránh được rất nhiều các vấn đề mà người khác đã gặp phải.


    Xin chúc mừng, bây giờ bạn đã có đủ kĩ năng để tạo ra một trò chơi trong C2, clap clap clap (vỗ tay) (chỉ cần cố gắng thực hành thêm nữa là ngọt nước). Ko những thế bạn cũng đã biết cách tìm lỗi của trò chơi và loại bỏ chúng. Tuy nhiên, còn một thứ nữa bạn nên biết: best practices. Bạn nên biết cái này hơn là tập ngồi dò lỗi vì nó rất hữu ích cho việc giúp bạn tránh các lỗi ngay từ lần đầu tiên.


    Trong chương này ta sẽ đề cập đến các chủ đề sau:
    • Các định dạng tệp yêu cầu để sử dụng cho asset.
    • Những thứ bình thường được yêu cầu cho bất kì project nào
    • Tối ưu hóa bộ nhớ trong game

    Bài 1. Áp dụng các best practice cơ bản

    Theo kinh nghiệm của tôi, tôi chia best practice làm 2 nhóm lớn:

    • Common best practices: đây là điều bạn áp dụng cho tất cả project của mình, cho dù chúng lớn hay nhỏ. Không áp dụng chúng thường xuyên sẽ không mang lại hiệu suất cho trò chơi của bạn nhưng vẫn có thể làm chậm sự phát triển project của bạn.
    • Technical best practices: đây là những kĩ thuật giúp nâng cao hiệu suất trong game của bạn. Thường sử dụng trong game lớn sử dụng nhiều tài nguyên hoặc các mobile game nơi hạn chế mặt kĩ thuật. Mặc dù các best practice này có thể áp dụng cho các dự án nhỏ, có ít điểm trong việc tối ưu hóa game mà ko cần tối ưu hóa. Tuy nhiên, đó vẫn là một good practice.
    1. Sao lưu dữ liệu thường xuyên

    Một điều thực sự quan trọng cần ghi nhớ đó là: máy tính của bạn có thể bị hỏng hoặc sập nguồn bất cứ khi nào kể cả khi bạn dang làm việc trên project của mình, điều này sẽ làm dự án bị mất dữ liệu. Tính cả hỏa hoạn, động đất, lũ lụt và trộm lấy mất máy tính thì bạn nên sao lưu dữ liệu ở đâu đó, vì mất máy tính là mất tất cả.

    C2 có 2 tính năng để làm điều này tự động và nó có thể lưu dữ liệu tớ máy tính cảu bạn và Dropbox. Các tính năng này được gọi là tự động sao lưu và lên lịch sao lưu và đều được thiết lập trong hộp thoại Preferences. Thiết lập các tính năng sao lưu trong C2 rất dễ dàng, thể hiện trong 2 bước sau:

    •  Tới hộp thoại Preferences, kích vào nút File và chọn nút Preferences:


    •  Một cửa sổ mới xuất hiện. Lựa chọn tab Back up để nhìn thấy các thiết lập của tính năng sao lưu:

    Theo mặc định, C2 sẽ tạo một tệp khi lưu; sao lưu này được lưu trữ cùng tệp với tệp chính .capx và rất hữu ích khi tệp chính ko mở được (vì lí dó nào đó). Tên tệp cho sao lưu này là filename.capx.backup1, hoặc nếu bạn giữ nhiều hơn 1 sao lưu, nó sẽ trở thành filename.capx.backup2, filename.capx.backup3, vân vân.

    Tính năg tự động sao lưu rất hữu ích, nó vẫn lưu tệp tới máy tính của bạn. Như tôi giải thích, nó rất khuyến khích bạn lưu tệp ở đâu đó khác máy tính phòng khi trộm cắp hoặc thiên tai, để làm điều này, C2 có thiết lập lên lịch sao lưu. Lên lịch sao lưu lưu trữ bản sao đến một vị trí cụ thể ở tần số nhất định.


    Khuyên bạn nên có một tài khoản Dropbox, nơi bạn được hướng dẫn để cài đặt một tệp Cropbox trên máy tính của bạn. Bạn có thể thiết lập lên lịch sao lưu để lưu trữ dự án của bạn tới tệp này, sau đó sẽ tự động tải lên Dropbox. Lên lịch sao lưu được lưu trữ trong tệp khi bạn nhấn nút Save sau khi đã vượt qua tần số. Ví dụ, nếu bạn tiết lập một sao lưu hàng ngày, lên lịch sao lưu sẽ lưu trữ game của bạn dưới tệp sau 1 ngày hoặc hơn. Ngoài ra nếu bạn có một ổ cứng di động hoặc một USB, bạn có thể cắm vào máy và thực hiện sao lưu ở đó. Đó là một sự thay thế tốt nếu bạn ko ở một nơi có internet đáng tin cậy.

    Bạn nên sao lưu hàng ngày vào Dropbox của bạn trong trường hợp có gì đó xảy ra. Quá trình thiết lập này chỉ tốn vài phút, bạn ko cần làm gì, mọi thứ sẽ tự động làm thay bạn.



    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é.


    2. Thử nghiệm trò chơi trên nhiều trình duyệt


    Trong khi HTML5 là một dạng chuẩn, thì việc triển khai có thể khác nhau giữa các trình duyệt web hiện đại. Hãy cài đặt nhiều trình duyệt và kiểm tra game của bạn trên tất cả chúng. Ngoài ra, nếu bạn tạo một trò chơi mobile, bạn nên test trên nhiều thiết bị càng tốt.

    3. Hỗ trợ thiết bị với màn hình cảm ứng


    Càng ngày càng có nhiều người sử dụng thiết bị di động, và nếu bạn phát triển một trò chơi dựa trên web, tốt nhất bạn nên phỏng đoán rằng có những người sẽ chơi trò chơi của bạn trên thiết bị di động, bạn cần áp dụng một số thủ thuật đơn giản phụ thuộc vào sự phức tạp của trò chơi mà bạn tạo.

    Nếu bạn thưựcc hiện game 1 nút (như Flappy bird), bạn có thể sử dụng đối tượng Touch và sau đó thiết lập thuộc tính use mouse input thành Yes, theo mặc định thì nó là No. Cái này sẽ giúp trò chơi nhận ra người chơi sử dụng chuột trái kích như 1 chạm.


    Nếu bạn đang tạo một trò chơi phức tạp hơn, bạn có thể bắt đầu bằng cách đặt nút Start game ở đầu trò chơi trước khi hiển thị màn hình chính; đừng ghi bất cứ điều gì như click hoặc tap bởi vì điều này dễ gây nhầm lẫn cho người chơi. Sau đó, sử dụng cả 2 đối tượng Touch và Mouse; bạn có thể kiểm tra các trigger được kích hoạt là On touched object hoặc On object click để xác định người chơi dùng máy tính hay điện thoại.

    Sau khi bạn biết rằng người chơi đang chơi trên thiết bị di động, bạn có thể hiển thị màn hình điều khiển. Để làm điều này, thực hiện các bước sau:

    1. Trước tiên hãy tạo một layer trên project của bạn chứa tất cả HUD trên màn hình điều khiển. Hãy gọi nó là On-screen control layer và thiết lập Initial visibility thành Invisible ở thành Properties.
    2. Sau đó bạn có thể tạo ra một biến văn bản toàn cầu được gọi là platform; giá trị của biến này được thiết lập khi người chơi chạm hoặc kích vào trò chơi lần đầu tiên. Nếu nó tự On touched object trigger, giá trị là mobile; nếu On object clicked trigger được kích hoạt, nó là desktop. Bằng cách sử dụng thông tin này, chúng ta có thể thêm một code nhỏ khi trò chơi chạy để hiển thị On-screen control layer nếu người chơi chơi trên mobile:

    Người chơi có thể chơi game của bạn trên cả desktop lẫn mobile mà họ ko phải làm bất cứ điều gì.

    4. Sử dụng đúng tệp định dạng


    Khi làm việc với C2, bạn cần chuẩn bị những tệp asset của mình ở định dạng tốt nhất cho C2. Có 2 định dạng bạn cần lưu ý: định dạng hình ảnh và định dạng âm thanh. Chúng được mô tả ở đây:
    • Image format: với định dạng này, sử dụng tệp PNG 32 bit từ phần mềm chỉnh sửa đồ họa của bạn khi có thể. PNG 32 bit ko mất dữ liệu, nghĩa là nó lưu tệp ở kích thước nhỏ mà ko giảm chất lượng và hỗ trợ độ trong suốt alpha.
    • Audio files: với định dạng này, sử dụng tệp 16 bit PCM WAV. Nhập tệp âm thanh với tệp này với C2 sẽ khiến C2 tự động chuyển nó sang AAC và Ogg Vorbis. Đây là 2 tệp định dạng âm thanh hỗ trợ tất cả trình duyệt hiện đại.

    5. Bảo mật

    Nếu trò chơi của bạn cần lưu tên người dùng và mật khẩu của họ, đừng bao giờ viết nó vào các sự kiện. Nó sẽ hiển thị rõ ràng trong mã JavaScript khi xuất. Nếu bạn cần sử dụng tài khoản và mật khẩu, lưu trữ chúng trong cơ sở dữ liệu và viết một số mã phụ trợ để truy cập cơ sở dữ liệu này, thường là trong PHP, sau đó hãy gọi mã này từ C2 code.

    Chủ đề này nằm ngoài phạm vi của cuốn sách. Nếu bạn qan tâm đến bảo mật trực tuyến, có rất nhiều hướng dẫn cho nó, mình sẽ cập nhật sau.


    Bài 2. Sử dụng technical best practices


    Bây giờ bạn đã biết tất cả các best practice thông thường được áp dụng trong C2, hãy di chuyển tới best practices kĩ thuật. Lời khuyên này thực sự hữu ích để cải thiện hiệu suất trò chơi của bạn, và do đó nó phù hợp để áp dụng với các mobile game vì các thông số kĩ thuật trên điện thoại không tuyệt vời như máy tính. Máy tính bảng thường có thông số kĩ thuật tốt hơn điện thoại, nhưng khi phát tiển game, để có kĩ năng tốt nhất, hãy nghĩ rằng điện thoại của người chơi max cùi, và bạn phải tối ưu hóa trò chơi của bạn hết sức có thể.

    1. Tối ưu hóa cho nền tảng di động


    Một điều cần lưu ý khi phát triển cho di dộng đó là di động ko mạnh mẽ như máy tính bàn. Vì vậy, khiến cho game của bạn chạy mượt mà chính là mối quan tâm lớn khi bạn làm game mobile.

    Test game của bạn trên di động ngay từ đầu. Cách rất tốt để đảm bảo rằng game của bạn chạy trên một framerate phù hợp trên nền tảng di động đó là test trực tiếp trên di động trong quá trình phát triển. Điều này giúp bạn tránh khỏi những bất ngờ ko đáng có sau đó khi bạn xuất trò chơi ra đi động. Ngoài ra, hãy có gắng có mảng rộng nhất của di động nếu có thể; nếu bạn ko biết điện thoại của người chơi là gì. Nếu bạn ko có những thiết bị đó, bạn có thể xây dựng một tester hoặc mượn cảu bạn bè.

    Dưới đây là một vài cách giúp bạn cải thiện hiệu suất trò chơi của mình trên thiết bị di động:
    • Đảm bảo rằng bạn bật WebGL trong project của bạn. Trên các thiết bị hỗ trợ nó, WebGL sẽ cải thiện đáng kể hiệu suất. Luôn đặt giá trị này là On ở thuộc tính Project. Nếu ko được hỗ trợ, C2 sẽ trả lại về canvas2d.
    • Tránh sử dụng quá nhiều đối tượng. Hiển thị quá nhiều đối tượng trên màn hình cùng một lúc sẽ làm chậm tốc độ trò chơi của bạn, vì vậy hãy luôn cố giới hạn số lượng đối tượng mà bạn sử dụng. Nếu bạn muốn sử dụng lặp lại các sprite có background hay các thứ khác, bạn có thể sử dụng đối tượng Tiled background, bởi vì nó cũng được tính là một đối tượng.
    • Một nguyên tắc nhỏ khi sử dụng là các hình ảnh ko quá 200 MB bộ nhớ, thậm chí hơn 100 mb sẽ làm các thiết bị dưới 1GB RAM bị chậm. Với máy tình bàn thì ko quá 400 MB.
    • Đặt các đối tượng sử dụng cùng hiệu ứng trên cùng một layer: nếu bạn đang sử dụng rất nhiều các đối tượng với cùng hiệu ứng trong game của bạn, tốt hơn hết là nên tạo chúng trên cùng một layer với hiệu ứng đó. Điều này là do áp dụng một hiệu ứng cho nhiều đối tượng nặng hơn việc dùng 1 hiệu ứng cho cả một layer. Để thêm một hiệu ứng vào một đối tượng hay một layer, ta cần chỉnh sửa nó trong thanh Properties.
    • Cố gắng ko sử dụng nhiều đối tượng có quá nhiều vùng trong suốt: trái với những gì mọi người nghĩ, vùng trong suốt trong ảnh của bạn vẫn chiếm bộ nhớ. Điều này có nghĩa là dù chúng trong suốt nhưng trò chơi vẫn hiển thị chúng trên màn hình (đúng, ý tưởng của việc tạo ra vùng trong suốt chả có ý nghĩa gì, nhưng nó vẫn xảy ra). Nếu bạn muốn tạo một đường biên giới của trò chơi hay cái gì đó như thế, tốt nhất hãy vẽ ra 4 hình ảnh riêng biệt và tạo ra 4 đối tượng khác nhau cho nó.
    • Tránh việc đè nhiều giữa 2 đối tượng: C2 vẽ các đối tượng từ sau đến trước, nghĩa là nếu có nhiều vùng đè lên nhau giữa 2 đối tượng, thì đối tượng bị đè có điểm ảnh được được vẽ ở đầu lặp đi lặp lại. Đây chính là một kiểu lãng phí tài nguyên bộ nhớ, bởi vì khu vự bị đè ko hiển thị cho người chơi, vì vậy hãy cố gắng tránh mọi tình hướng.



    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