Độ phức tạp và Chiều sâu trong thiết kế game

Khách quen

  

Một cách nhìn nhận thiếu đúng đắn mà một vài game designer thường gặp phải khi họ bắt tay vào thực hiện một dự án từ tầm trung đến tầm lớn, hoặc chí ít là các dự án yêu cầu một khối lượng cơ sở dữ liệu vừa phải trở lên, đó là tập trung quá nhiều vào việc gia tăng số lượng các cơ chế, các hệ thống và độ phức tạp tổng thể của game, nhưng lại quên đi điều quan trọng hơn, đó là chiều sâu được rút ra từ những tầng lớp phức tạp đó. Trong bài này chúng ta sẽ đi sâu vào phân tích chủ đề này. Đầu tiên, chúng ta sẽ nhìn vào một ví dụ cụ thể để tạo ngữ cảnh tiền đề cho lý thuyết.

Terra Battle (2014)

Circle of Carnage trong Terra Battle

Terra Battle là một tựa game thuộc thể loại Thẻ bài và Chiến thuật theo lượt (TBS) trên hệ máy mobile của studio Mistwalker. Hệ thống chiến đấu trong game xoay quanh một cơ chế cốt lõi gọi là flanking: gây sát thương lên một hoặc một nhóm đơn vị (unit) của đối phương bằng cách cho quân chặn hai đầu đối diện bất kỳ của đơn vị hay nhóm đơn vị đó.

Các cơ chế cũng như các quy luật còn lại của hệ thống chiến đấu trong Terra Battle hầu hết đều được thiết kế để phục vụ cho cơ chế cốt lõi này. Ví dụ, khi bạn điều khiển cho một đơn vị di chuyển, và đi xuyên qua một đơn vị đồng minh khác, thì đơn vị đồng minh đó sẽ được di chuyển 1 ô về hướng ngược lại. Điều này có nghĩa là bạn gần như có thể điều khiển vị trí của toàn bộ các đơn vị trong đội đi bất cứ đâu bằng cách liên tục chạy xuyên qua chúng cho đến khi chúng dừng lại ở vị trí flanking bạn mong muốn. Tuy vậy, vẫn có một điều kiện giới hạn về thời gian, nên bạn sẽ gần như không bao giờ đạt được một thế trận hoàn hảo cả, và do đó bạn sẽ cần phải cân nhắc kỹ lưỡng.

Circle of Carnage (Terra Battle)

Terra Battle cũng áp dụng một số yếu tố khá quen thuộc với thể loại game nhập vai (RPG), và một trong số đó là Circle of Carnage. Hệ thống này về cơ bản là một hệ thống đá-giấy-kéo như trò chơi oẳn tù tì, được sử dụng trong rất nhiều các loại game và đa phần là thể loại nhập vai (RPG), ở đó các nguyên tố (element) tạo thành một vòng tròn khắc trị: đá thắng kéo, kéo thắng giấy, và giấy thắng đá.

Tuy vậy, phần lớn thời gian bạn vẫn sẽ dành cho việc suy nghĩ xem nên chọn đơn vị nào để di chuyển, cần dùng đơn vị đó để di chuyển những đơn vị nào khác cho tối ưu, và đường đi như thế nào để có thể hoàn thành được việc này trong khoảng thời gian cho phép. Hơn nữa, tầm ảnh hưởng lên kết quả chiến đấu của hệ thống elemental (fire, ice, darkness, light, etc), cũng như sự khác biệt về mặt chỉ số giữa các class của nhân vật là đủ lớn, để không một ai – cả khi xếp đội hình trước trận đấu, cũng như khi di chuyển trong trận đấu – phải quan tâm tới Circle of Carnage để làm gì. Tại sao người chơi phải hiểu về cách hoạt động của nó, khi họ không bao giờ cảm thấy việc sử dụng nó có ý nghĩa gì?

“Một hệ thống không được quan tâm hay tận dụng là một hệ thống chết, và không có chỗ đứng trong một game.”

VVVVVV (2010) - Một game thuộc thể loại platformer xoay quanh duy nhất cơ chế đảo chiều trọng lực

VVVVVV (2010) – Một game thuộc thể loại platformer xoay quanh duy nhất cơ chế đảo chiều trọng lực.

Khái niệm

Khi xây dựng một concept mới – bất kể là một cơ chế gameplay cốt lõi hay phụ trợ, hay là cả một hệ thống – thì game designer cần phải hiểu rõ khái niệm về Độ phức tạp (Complexity) và Chiều sâu (Depth) để đưa ra quyết định hợp lý xem concept đó có cần tinh chỉnh hay thậm chí là xóa bỏ hay không.

Độ phức tạp

Như một lẽ tất yếu, mỗi khi người ta bắt đầu chơi một game mới, thì dù nhiều hay ít họ cũng sẽ phải học và hiểu được những quy luật cơ bản nhất của một game. Phụ thuộc vào nhiều yếu tố mà có những game yêu cầu người chơi phải bỏ đến hàng tiếng đồng hồ đọc sách hướng dẫn trước khi họ có thể bắt tay vào… tạo nhân vật (thường là thể loại tabletop như D&D). Thế thì ở đây, chúng ta có thể hiểu rằng Độ phức tạp (Complexity) là khối lượng kiến thức cần (nhưng không phải khối lượng kiến thức đủ) mà người chơi phải học, phải hiểu để có thể bắt đầu chơi game.

Nói một cách khoa học và cụ thể hơn, thì để phục vụ cho quá trình xây dựng và đưa ra quyết định của người chơi trong game, Độ phức tạp của một game thường bao gồm:

  • Khối lượng những dữ liệu (data) mà người chơi phải nhớ.
  • Những quy luật mà người chơi phải xử lý.
  • Những tính toán mà người chơi phải thực hiện. Ví dụ một cách tổng quát, thì một game như Cờ Caro là game với Độ phức tạp thấp. Trong khi đó một game mất đến hàng tiếng hoặc thậm chí hơn để có thể tạm thời gọi là đủ hiểu như Civilization hay các loại game 4X khác thì thuộc dạng Độ phức tạp cao.
Biểu đồ phân biệt độ phức tạp của game trên từng thang đo phức tạp của thể loại game.

Biểu đồ phân biệt độ phức tạp của game trên từng thang đo phức tạp của thể loại game.

Tuy vậy, chúng ta cũng chớ nên vội vàng đặt tất cả các thể loại trên cùng một thước đo về Độ phức tạp. Những game thuộc thể loại hành động hay nhìn chung cần phản xạ nhanh thì thường chỉ yêu cầu người chơi xử lý những vấn đề với cấp độ phức tạp thấp. Các game với nhịp độ chậm hơn thì thường sẽ yêu cầu người chơi xử lý những vấn đề với cấp độ phức tạp cao hơn. Rõ ràng rằng trong một game FPS như Call of Duty, người chơi thường chỉ đủ thời gian để đưa ra những quyết định bậc thấp hơn, ví dụ như xem thời điểm nào là thời điểm thay đạn, hay liệu có nên ném bom khói để tranh thủ thoát thân hay không, etc. Rõ ràng anh không thể yêu cầu người chơi chỉ trong vài giây ngắn ngủi mà giải quyết được những vấn đề phức tạp về mặt chiến thuật dày đặc như các game RTS ví dụ như Company of Heroes được.

Việc xác định xem nên sử dụng thước đo Độ phức tạp ở cấp độ nào là rất quan trọng, và sẽ phụ thuộc vào thể loại cũng như cơ cấu game của bạn. Một cách hữu hiệu để xác định được điều đó là dựa vào tốc độ chơi (pace of play). Nếu tốc độ chơi là từ cao đến rất cao, thì bạn nên giảm Độ phức tạp xuống. Ngược lại, nếu tốc độ chơi là chậm hoặc gần như không có giới hạn thời gian nào, thì bạn sẽ có nhiều tự do hơn để áp dụng các yếu tố phức tạp hơn.

The Bureau: XCOM Declassified (2013)

The Bureau: XCOM Declassified (2013)

Một ví dụ điển hình cho sự thất bại trong việc xác định cấp độ thước đo Độ phức tạp này là tựa game The Bureau: XCOM Declassified của 2K. Game thuộc thể loại TPS (Third Person Shooter), đòi hỏi người chơi phải có phản xạ và đưa ra các quyết định vi mô mang tính chiến thuật (tactical) thật nhanh. Tuy nhiên, vì vẫn muốn gây ấn tượng với fan gạo cội của các tựa game X-Com đời đầu, vốn thuộc thể loại TBS (Turn-Based Strategy), nên The Bureau đã cho thêm hai nhân vật đồng đội và cơ chế permadeath (đã chết là chết vĩnh viễn), có nghĩa là các quyết định vĩ mô mang tính chiến lược (strategic). Thành thử ra game không tạo nên được sự đồng nhất và cân bằng: nếu người chơi tập trung vào xử lý các quyết định vi mô chiến thuật, thì họ dễ bỏ quên các đơn vị đồng đội và dễ để đồng đội chết. Ngược lại, nếu người chơi mãi theo dõi đường đi nước bước, chỉ số máu hay tình thế của đồng đội, và tính toán chiến lược cho đơn vị đồng đội, thì họ sẽ dễ bỏ quên tình huống chiến thuật của bản thân và dẫn đến việc để cho nhân vật của mình chết.

Democracy (2013) - Một game với độ phức tạp rất cao, bởi là game thuộc thể loại thuần chính trị

Democracy (2013) – Một game với độ phức tạp rất cao, bởi là game thuộc thể loại thuần chính trị

Chiều sâu

Chiều sâu có thể hiểu như là dung tích của một game để dành cho việc lập kế hoạch chiến lược của người chơi. Nói một cách khác, thì nó là số lượng những khả năng khác nhau về mặt trải nghiệm mà một game có, so với khối lượng bộ quy tắc của nó.


Khi nói đến Chiều sâu, là người ta nói đến cái không gian được tạo ra bởi những quy luật hay những sự sắp đặt của một game, mà trong đó người chơi có thể thoải mái bơi lội chạy nhảy, đưa ra những quyết định thú vị, và tìm được những điều sâu xa thú vị mà khi mới nhìn qua người ta khó nhận thấy được. Về bản chất, Chiều sâu chính là một hoạt động trí óc. Chiều sâu có nghĩa là người chơi có cơ hội để suy nghĩ rằng họ nên dùng súng lục, hay súng rocket chống tăng, hay súng tiểu liên, và đồng thời rút ra được những kinh nghiệm cá nhân sau mỗi lần thử nghiệm, để dần dần cải thiện trình độ của họ.

Tic-Tac-Toe

Ta lấy ví dụ một game như Tic-Tac-Toe. Game này còn được gọi là game cờ ca-rô, nhưng với bàn cờ chỉ có tổng cộng 9 ô như trong hình. Ta có thể dễ dàng nhận thấy ngay một điều là game này không tạo ra được cho người chơi quá nhiều sự lựa chọn. Thật vậy, trong game này người ta tính ra được là chỉ có 576 tình huống khác nhau về mặt bản chất có thể xảy ra, nếu không tính việc xoay hay lật ngược lại bàn cờ. Và gần như tất cả các game đều sẽ kết thúc với kết quả hòa, trừ phi là một trong 2 người chưa từng chơi cờ cà-rô bao giờ. Vậy thì ta hiểu rằng Tic-Tac-Toe là một game với ít Chiều sâu.

Cá nhân tôi có một cách đơn giản để hiểu định nghĩa và xác định Chiều sâu là như thế này: một game mà ở đó những người chơi có thể trao đổi, trò chuyện để qua đó cải thiện kết quả hay trình độ chơi của mình – có thể là trao đổi ngoài đời, có thể là trao đổi qua diễn đàn – thì đó là một game nhiều Chiều sâu. Còn một game mà ở đó những người chơi không có gì để trao đổi thảo luận với nhau ngoài những nhận xét cá nhân thông thường thì đó là một game ít Chiều sâu.

Mối tương quan giữa Độ phức tạp và Chiều sâu

Về cơ bản, Độ phức tạp chính là “đồng tiền” để mua được Chiều sâu, vì thế cho nên tốt hơn hết là lúc nào bạn cũng cần phải nhắm tới mục tiêu mua được nhiều Chiều sâu nhất với số tiền là Độ phức tạp ít nhất có thể.

Để dễ hình dung, ta có thể liên tưởng tới một qui phạm tương tự nhưng nhỏ hơn, đó là UI Design. Như World of Warcraft của Blizzard có UI như thế này.

World of Warcraft - Blizzard

World of Warcraft – Blizzard


Nếu ta so sánh giữa Game Design và UI Design, thì ta có thể liên tưởng thế này: Độ phức tạp chính là khối lượng hay số lượng các UI element xuất hiện trên màn hình, và Chiều sâu là độ trực quan và tính hữu dụng của các UI element đó. Và ai đã từng nghiên cứu dù chỉ là một chút về UI/UX, có lẽ sẽ hiểu rằng một cái UI mà có tính phức tạp càng cao thì độ trực quan của nó sẽ càng thấp. Và như trong hình là ví dụ tiêu biểu nhất của những thứ không nên làm trong UI design, bởi vì khối lượng thông tin cần quá nhiều gây đè nặng lên người chơi dẫn đến trì trệ quá trình xử lý dữ liệu. Không gì có thể biện minh cho một cái UI hết sức phi trực quan như thế này. Đừng làm rác cái UI của bạn.

Thế nhưng nói đi cũng phải nói lại. Chiều sâu đôi khi cũng sẽ bị giới hạn bởi Độ phức tạp. Khi một game tỏ ra quá phức tạp, tức là tỷ lệ quy đổi giữa Độ phức tạp và Chiều sâu là gần như 1:1, thì hoặc là người chơi sẽ cảm thấy vô cùng nhàm chán sau 15 phút, hoặc nó sẽ rất dễ khiến người chơi sớm bỏ cuộc vì họ không thể gánh nổi mức độ phức tạp đó trước khi họ có đủ điều kiện cần thiết để trải nghiệm được cái Chiều sâu của game đó.

Các kỳ thủ đang chơi Cờ Vây

Các kỳ thủ đang chơi Cờ Vây

Cờ Vây, có thể bạn chưa biết

Một ví dụ của một game mà theo tôi là đỉnh cao của hiệu suất quy đổi giữa Độ phức tạp và Chiều sâu, đó chính là môn Cờ Vây. Môn Cờ Vây được bắt nguồn từ Trung Quốc cách đây khoảng 5.500 năm, và cho đến nay vẫn có rất nhiều người chơi Cờ Vây chuyên nghiệp. Và mặc dù luật chơi của Cờ Vây vô cùng đơn giản, Cờ Vây lại là một trò chơi cực kỳ sâu sắc. Thậm chí số lượng những khả năng hay tình huống khác nhau mà bạn có thể gặp trong Cờ Vây còn nhiều hơn cả số lượng các nguyên tử trong vũ trụ mà chúng ta nhìn thấy được. Và bản thân nó cũng đã trở thành niềm cảm hứng của rất nhiều các tác phẩm văn học và nghệ thuật trên thế giới.

Luật lệ của môn này thì dễ thôi: chúng ta có một bàn cờ như trong hình, với tổng cộng 19 đường thẳng ngang và 19 đường thẳng dọc. Hai bên sẽ thay phiên nhau đặt một quân cờ của họ lên bàn cờ mỗi lượt, và khi một hay nhiều viên đá xếp liền nhau của bạn bị bao vây từ cả bốn hướng bởi đá của đối phương, thì những viên đá đó của bạn sẽ “bị bắt”. Game sẽ kết thúc khi một bên không còn nước đi nào, hoặc bàn cờ đã được xếp kín. Và ai chiếm được nhiều điểm trên bàn cờ hơn thì sẽ thắng. Luật của Cờ Vây rất đơn giản. Thế nhưng cũng giống như những boardgame cổ truyền khác như Cờ Vua hay Cờ Tướng, Cờ Vây cũng có vô vàn những khả năng hay là cái không gian để người chơi thỏa sức nghiên cứu chiến thuật của họ mà không cần phải dùng đến sự phức tạp như trong Cờ Vua hay Cờ Tướng – tất cả các viên đá trong cờ vây đều có một sự quan trọng như nhau. Chỉ khi những viên đá đó được xếp thành một khối thì chúng mới tạo nên được ý nghĩa.

Các phương án giúp tăng tỷ lệ quy đổi giữa Độ phức tạp và Chiều sâu

Những phương án được tôi nêu ra dưới đây chắc chắn không phải là những phương án duy nhất, cũng không phải những phương án tốt nhất, nhưng đó là những phương án tôi luôn tin dùng, hay ít nhất là đã được chứng kiến và được ấn tượng rất nhiều. Hy vọng càng ngày chúng ta sẽ càng tìm ra được nhiều phương án giải quyết hơn.

Dark Souls 3 (2016)

Dark Souls 3 (2016)

Tối ưu hóa Thiết kế

game-deep-9

Soul có thể được sử dụng cho nhiều mục đích khác nhau (Dark Souls 2)

Dark Souls của From Software là dòng game thuộc thể loại Hành động Nhập vai (Action RPG). Nhìn sơ qua thì Dark Souls khá giống với hầu hết các game Hành động Nhập Vai khác: bạn cũng đi đánh quái và thu về vật phẩm, tiền và kinh nghiệm. Tuy nhiên, một trong số những cơ chế giúp Dark Souls trở nên khác biệt, đó là việc From Software quyết định kết hợp hai loại đơn vị thường thấy trong thể loại RPG là EXP (Điểm kinh nghiệm) và Gold (Tiền) vào làm một, đó là Soul. Bạn có thể dùng Soul, hoặc để nâng cấp level và chỉ số của nhân vật, hoặc để mua các loại vật phẩm và trang thiết bị, hoặc để mở ra một con đường mới dẫn đến một khu vực mới.

Ta có thể dễ dàng thấy rằng từ một môi trường, mà ở đó người chơi chỉ phải quan tâm đến lượng EXP anh ta có khi nâng cấp, và lượng tiền vàng anh ta đang mang theo khi mua sắm, thì nay quá trình đó đã trở thành một sự lựa chọn thú vị và có sức ảnh hưởng trực tiếp lên cách tiếp cận của người chơi. Mình nên dùng bao nhiêu Soul để nâng cấp và bao nhiêu Soul để mua vật phẩm? Đó chính là Chiều sâu.

game-deep-10

Downwell (2015)

Hay như trong Downwell của Ojiro Fumoto (vốn đã được Mark Brown phân tích khá cụ thể trong video về Dual Design mà ViNa Ludens đã dịch sub hoàn chỉnh), thì triết lý tối giản hóa Độ phức tạp này cũng được vận dụng một cách triệt để. Mỗi cơ chế trong Downwell đều phục vụ ít nhất hai mục đích trở lên: khi bạn nhấn nút Nhảy, thì nhân vật cũng bắn ra đạn xuống dưới chân. Nếu bạn nhấn nút Nhảy giữa không trung và đạn bắn xuống dưới, thì đồng thời nhân vật của bạn cũng tạm thời giảm tốc độ rơi để giúp bạn cơ động hơn. Bạn có thể nhảy lên đầu một số loại enemy để tiêu diệt chúng, và khi bạn chạm vào các loại enemy này, khẩu súng-giày của bạn cũng được nạp đạn lại. Gem là loại tiền tệ bạn thu lại được từ việc tiêu diệt enemy để mua các loại nâng cấp, nhưng đồng thời cũng để duy trì trạng thái Gem High, trạng thái mà ở đó đạn bắn ra từ khẩu súng-giày của bạn có kích cỡ lớn hơn và sát thương mạnh hơn.

Trên đây là hai đáp án khá đơn giản, nhưng qua đó bạn cũng có thể thấy sự hiệu quả của khái niệm Tối ưu hóa Thiết kế mà chúng ta vẫn hay thấy trong lập trình hay cả trong văn học.

“Tối ưu hóa Thiết kế là khi mỗi thành phần của một hệ thống đều phục vụ ít nhất là hai mục đích trở lên.”

Chia nhỏ lượng kiến thức (hay Kiến thức tùy-cơ-ứng-biến)

Bản thân tôi thì nói thật là cũng chưa có nhiều kinh nghiệm với các thể loại boardgame/tabletop cho lắm, và cũng mới chỉ làm quen với một vài game trong thời gian gần đây (đó là cái tôi cần phải cải thiện).

Gần đây thì tôi mới được chơi qua một vài tựa boardgame khá nổi tiếng, tôi nhận ra là các game này (hay rất có thể là rất nhiều các boardgame khác mà tôi chưa biết) hiểu rất rõ thứ rào cản gia nhập (entry barrier) của rất nhiều các boardgame là rất cao. Điều này là bởi boardgame không có sự hỗ trợ của máy tính hay công nghệ, nên hầu hết các cơ chế của boardgame đều dựa trên (1) xúc xắc/xí ngầu hoặc (2) người chơi tự tính toán các công thức. Và cả bạn lẫn cả tôi có lẽ đều cần phải đồng ý rằng phải làm đủ các loại công thức toán chỉ để tính kết quả sát thương của nhân vật mình lên quái vật trong-một-lượt là rất dễ chán. Do đó, tôi cho rằng tỷ lệ quy đổi giữa Độ phức tạp và Chiều sâu của boardgame thường khá thấp.

Vậy có cách nào để boardgame có thể cải thiện được “điểm yếu” này?

game-deep-11

Mặt sau của các quân bài Encounter (Eldritch Horror)

Như trong tựa boardgame có tên Eldritch Horror của Fantasy Flight Games, thì cách để giảm tải lượng kiến thức mà người chơi phải thu nạp trước khi chơi là khá ít: bạn chỉ cần phải quan tâm xem các loại chỉ số là gì, nhân vật của bạn có những kỹ năng đặc biệt gì, mỗi lượt game có những giai đoạn (phase) nào, và luồng chính (main flow) của game là gì. Đó là tất cả những gì bạn cần biết ở bề nổi để bắt đầu chơi. Eldritch Horror có rất nhiều chiều sâu, hay nói cách khác là những tình huống khác nhau, những khả năng, những thể loại tương tác khác nhau, ở những thời điểm khác nhau. Đó là Chiều sâu. Và để chạm được tới những Chiều sâu đó, bạn chỉ cần cứ thế chơi game. Và khi nào đến tình huống gì thì bạn chỉ cần bốc là bài tương ứng và đọc hướng dẫn thực hiện tình huống đó ở mặt sau của lá bài. Bạn không cần phải hiểu kỹ từng cây đinh chiếc ốc của game để chơi. Bạn chỉ cần hiểu luồng chính của game, còn những kiến thức phức tạp khác để giúp bạn đạt được Chiều sâu của game sẽ được cung cấp của bạn chỉ khi nào bạn cần.

Tổng kết

Độ phức tạp là lượng kiến thức cần để người chơi có thể chơi một game, và Chiều sâu là không gian tương tác được sinh ra từ sự phức tạp đó để người chơi có thể đưa ra những quyết định thú vị. Độ phức tạp là đồng tiền để game designer mua được Chiều sâu, và do đó chúng ta nên cố gắng tối ưu hóa giao dịch này, để sao cho ta mua được nhiều Chiều sâu nhất, và giữ cho Độ phức tạp ở mức độ vừa phải nhất có thể. Hai phương án khá hiệu quả để gia tăng tỷ lệ chuyển đổi này, đó là (1) tối ưu hóa thiết kế, sao cho mỗi cơ chế trong game đều phục vụ ít nhất hai mục đích, và (2) chia nhỏ lượng kiến thức cần thiết để chạm tới Chiều sâu, trải đều ra toàn bộ quá trình chơi, và chỉ yêu cầu người chơi thu nạp thêm kiến thức khi cần.

Hy vọng sau bài viết này, ít nhất chúng ta đã có thêm một tiêu chuẩn để đánh giá game của mình, và qua đó giúp chúng ta cải thiện được chất lượng game. Để làm được một game trang nhã đến mức đỉnh cao được như Cờ Vây có lẽ là một điều không tưởng, nhưng chí ít đó cũng là một mục tiêu tốt đẹp để chúng ta theo đuổi.

Vô cùng cảm ơn ViNA Ludens đã cho phép HSBT đăng lại các bài viết cực kỳ ý nghĩa này. Mời các bạn theo dõi ViNA Ludens tại đây.

Gửi bài cho HSBT!

Không cần là một người viết chuyên nghiệp, không cần văn trên 7 điểm. Tất cả những gì chúng tui cần là các bạn cứ thoải mái tâm sự về tựa game bạn yêu thích. Bài viết của bạn sẽ được đăng trên website với hơn 150.000 lượt xem mỗi tháng.

Trò chuyện


2 cụng ly

  • Nam - 09.09.2017

    Bài này hay quá nhỉ. Ngoài Game ra nó còn là cả Lý thuyết trò chơi, Lý thuyết tối ưu, Vận trù học,…


    • Đăng Bông - 09.09.2017

      Cảm ơn lời khen và gợi ý của bác, sắp tới sẽ còn nhiều bài dạng “so deep” này nữa cho anh em tham khảo, chắc chừng 3-4 ngày sẽ post một bài nha, bác đón xem!