Agency nào cũng viết được một bộ deck. Mười slide chiến lược, một moodboard, một cơ chế được mô tả trong một đoạn văn cẩn thận, và một dòng ngân sách ở gần cuối: asset 3D: sẽ xác định sau.
Chúng tôi đã ngừng làm như vậy.
Khi Code Crush trả lời một brief, sản phẩm giao là một đường link. Bạn mở nó trên điện thoại ngay trong buổi họp và thứ đó chuyển động: một game bạn có thể thua thật, một vòng quay xoay thật, một mascot bạn kéo bằng ngón tay. Chiến lược vẫn ở đó — chỉ là nằm dưới một thứ bạn có thể bấm vào.
Đây là phiên bản trung thực về cách nó được làm ra. Một đề xuất chiến dịch gồm những gì, chúng tôi dựng và rig phần 3D ra sao, chỗ nào là phần khó, và chúng tôi từ chối hứa điều gì.

Vì sao phần lớn đề xuất chết ngay trong phòng họp
Một bộ deck bắt khách hàng phải tự tưởng tượng. Nó mô tả một cảm giác — "vui", "nhập vai", "dễ chơi" — rồi yêu cầu một giám đốc marketing ký ngân sách dựa trên hình ảnh trong đầu họ. Hai chuyện sẽ sai.
Hình ảnh trong phòng họp không phải cùng một hình ảnh. Mọi người cùng gật đầu với "vòng quay 3D trúng thưởng", rồi bốn tuần sau đội thương hiệu mới bất ngờ về ánh sáng, về độ nặng của vòng quay, về cách kim dừng lại. Không ai nói dối. Chỉ là chưa ai từng nhìn cùng một thứ.
Deck che mất rủi ro. Slide không có ma sát. Nó không bao giờ tiết lộ rằng cơ chế cần một nền tảng đã đóng cửa năm ngoái, rằng mô hình 3D sẽ không tải được trên một máy Android tầm trung trong trình duyệt nội bộ của TikTok, hay rằng logic trả thưởng không thể kiểm toán. Những phát hiện đó đến sau khi đã có đơn đặt hàng.
Một đề xuất chơi được xóa cả hai vấn đề ngay ngày đầu. Nếu nó chạy, nó chạy. Nếu không, bạn biết trước khi tiền chuyển đi.
Một đề xuất của Code Crush gồm những gì
Mỗi đề xuất đều được dựng từ năm phần giống nhau. Tỷ lệ thay đổi theo brief; hình dạng thì không.
Phần cuối đôi khi làm chúng tôi mất một pitch. Nhưng nó chưa bao giờ làm chúng tôi mất một khách hàng sau khi ký, và đó là cái giá chúng tôi chọn.
Quy trình, từng bước

Khi brief yêu cầu một nền tảng không còn tồn tại
Ví dụ rõ nhất cho giá trị của bước hai đến từ Decathlon Việt Nam, khi họ yêu cầu một game filter AR lan truyền có face tracking trên TikTok và Instagram.
Chúng tôi không thể làm đúng brief đó, và không ai khác làm được. Meta đã đóng Spark AR — nền tảng filter AR cho bên thứ ba — vào 14 tháng 1 năm 2025, nên filter Meta tùy chỉnh không còn xuất bản được nữa. Effect House của TikTok vẫn còn, nhưng đó là một editor đóng: phần thưởng, CRM và kiểm tra gian lận của bạn phải sống trong sandbox của người khác.
Vì vậy chúng tôi giao cùng trải nghiệm đó dưới dạng WebAR — face tracking bằng MediaPipe FaceLandmarker của Google, chạy trong trình duyệt di động, chia sẻ bằng link hoặc QR. Một link chạy được trong trình duyệt nội bộ của TikTok, Instagram, Zalo, Messenger hay từ một poster, và toàn bộ vòng thưởng-dữ liệu vẫn là first-party. Bản viết đầy đủ nằm ở Decathlon « Deal Frenzy »: game filter khuôn mặt WebAR chia sẻ được.
Đó là việc của một đề xuất. Không phải để tô vẽ cho brief — mà để tìm ra bức tường trước khi chiến dịch đụng phải.
Mô hình 3D riêng, dựng trong Blender và đưa lên trình duyệt
3D của chúng tôi không phải hàng có sẵn. Nó được dựng trong Blender, và với bất cứ thứ gì chúng tôi biết sẽ phải sửa, nó được dựng bằng script, để toàn bộ asset được tạo lại chỉ bằng một câu lệnh.
Lấy Lucky Wheel làm ví dụ. Một lần chạy Blender ở chế độ nền tạo lại ba thứ cùng lúc: file nguồn .blend sửa được, file wheel.glb mà game tải (khoảng 635 KB), và ảnh render giới thiệu mà trình cấu hình hiển thị trong bộ chọn mẫu. Sửa một đường vát, chạy lại, và nguồn, mô hình đã giao cùng visual cho deck đều dịch chuyển cùng nhau. Không có ảnh render cũ nào nằm trong thư mục nói ngược lại bản build.
Chính kỷ luật đó làm cho một bộ sưu tập trở nên khả thi về chi phí. Vòng quay hiện có bốn tạo hình riêng biệt — Signature, Orbit, Atelier và Prism — mỗi cái có khung, vật liệu và ánh sáng riêng, và đổi được trong trình cấu hình mà không ảnh hưởng tới phần thưởng, xác suất, ảnh đã tải lên hay logo trung tâm.

Vật liệu được đặt tên có chủ đích, không phải để trang trí. Vòng quay mở ra CC_Chrome, CC_Hub, CC_Pointer và CC_Accent, nhờ đó bảng màu của thương hiệu được áp trực tiếp trong trình cấu hình thay vì quay lại chỗ chúng tôi thành một yêu cầu xuất lại. Hình của từng ô và mặt logo trung tâm nằm trên texture độc lập, tùy chỉnh được từ 2 đến 12 ô.
Cách nghĩ này mở rộng lên quy mô lớn. Trong showroom căn hộ 3D, hình học kiến trúc được đo bằng mét, bản đồ màu ở sRGB còn bản đồ dữ liệu giữ tuyến tính, và scene chạy với chiếu sáng HDR dựa trên ảnh, bóng đổ định hướng 4096px với vùng nửa tối PCSS, che khuất môi trường trong không gian màn hình, phản chiếu phẳng trên sàn gỗ, bloom vừa phải và tone mapping ACES filmic — trong trình duyệt, thời gian thực. Một bản chụp lập phương được tiền xử lý của nội thất cung cấp phản chiếu cho đá, đồng thau và kim loại tối, và làm mới lại sau khi thay đổi ánh sáng hoặc vật liệu đã ổn định.
Hợp đồng hình học: vì sao mô hình và game không bao giờ lệch nhau
Đây là phần không ai đưa vào deck, và là phần quyết định một chiến dịch có làm thương hiệu mất mặt hay không.
Một vòng quay trúng thưởng là một lời hứa. Nếu kim dừng ở giữa hai ô trong khi server nói người chơi trúng xe máy, chiến dịch có vấn đề về uy tín và khách hàng có vấn đề về chăm sóc người chơi. Vì vậy mô hình và mã nguồn dùng chung một hợp đồng hình học rõ ràng, được viết ra:
Vì hợp đồng đó được viết ra, nó kiểm thử được. Lucky Wheel đi kèm 28 bài kiểm thử có mục tiêu: bản thân lượt quay, loại bỏ ô có trọng số bằng 0, giữ nguyên nội dung, canh kim cho mọi số lượng ô từ 2 đến 12, và tải cả bốn file GLB bằng đúng bộ giải mã của game. Đổi mô hình 3D không thể làm dịch phần thưởng. Đó là một quyết định thiết kế, được xác nhận ở mỗi commit.
Nhân vật 3D có rig dựng từ tranh tham chiếu phẳng
Mascot là yêu cầu khó nhất trong nhóm này, vì nhân vật của thương hiệu đã tồn tại — dưới dạng tranh phẳng, trong một tài liệu hướng dẫn sử dụng, trong ký ức của mọi người. Nó phải bước sang 3D mà vẫn đúng là chính nó.
Cho buổi pitch Million Green Miles của Toyota Việt Nam, chúng tôi đã dựng lại mascot của chiến dịch, Miraito, thành một nhân vật 3D có rig đầy đủ từ tranh tham chiếu được cung cấp: 33 xương, 8 điều khiển IK trong Blender và 4 biểu cảm khuôn mặt chạy bằng morph target. Nó đi kèm năm trạng thái chuyển động — chờ, đi, chào, ăn mừng, chỉ tay — nháy mắt tự động, và điều khiển riêng cho mắt trái và mắt phải. Toàn bộ quá trình dựng, cùng công cụ duyệt quanh nó, được kể trong cách chúng tôi biến mascot 2D thành nhân vật 3D.
Rồi chúng tôi bọc nó trong một công cụ duyệt, vì một bộ rig không kiểm tra được là bộ rig không ai duyệt được. Khách hàng mở một link và có:
Một điều chúng tôi giữ đúng: khi tài liệu hướng dẫn của một mascot cấm tô lại màu hay vẽ lại nhân vật, bản dựng 3D của chúng tôi là một xấp xỉ để duyệt và phải được đội thương hiệu chấp thuận trước khi phát hành — còn mọi vị trí đặt ảnh phẳng trong deck đều ghép từ file gốc chính thức chứ không phải bản của chúng tôi.
Ba con đường tới một mô hình 3D — và khi nào dùng đường nào
Không phải vật thể nào cũng đáng đầu tư như nhau. Quyết định được điều đó từ đầu chính là phần lớn tay nghề.
Con đường giữa mới hơn nhiều so với hình dung của phần lớn agency, và chúng tôi đã đưa nó vào sản xuất: một bức ảnh giờ đây có thể cho ra lưới vật thể, một môi trường đi lại được, ánh sáng khớp và âm thanh không gian. Chúng tôi mổ xẻ pipeline đó trong Image Blaster: biến một bức ảnh thành thế giới 3D đi lại được.
Con đường thứ ba quan trọng hơn vẻ ngoài của nó. Mọi vật liệu và file HDR tải về trong showroom của chúng tôi đều được ghi lại kèm trang nguồn và checksum trong một bản kê, và toàn bộ có thể tải lại bằng một script. Khách hàng không bao giờ nên thừa hưởng một asset mà không ai có thể cấp phép hay thay thế.
Làm 3D đủ nhanh cho một máy Android tầm trung
Một mô hình đẹp nhưng đứng máy trên đúng thiết bị khán giả đang dùng là một mô hình thất bại. Vì thế việc tối ưu hiệu năng là phần của việc dựng mô hình, không phải một lượt làm sau.
Những gì chúng tôi không hứa
Trang giới hạn là một trang thật. Vài dòng trong trang của chúng tôi:
Bản đề xuất là sprint đầu tiên của quá trình sản xuất
Vì bản đề xuất là một bản build thật, việc duyệt nó không làm công việc bắt đầu lại từ đầu.
Các file nguồn Blender là của bạn, sửa được, ở định dạng mở — không có file scene độc quyền, không bị khóa nhà cung cấp. File glTF mà prototype tải chính là file glTF mà bản sản xuất tải. Hợp đồng hình học mà prototype được kiểm thử theo chính là hợp đồng chiến dịch thật thừa hưởng. Ảnh render trong deck ra từ cùng scene đó. Khi khách hàng nói đồng ý, chúng tôi không mở một file trắng; chúng tôi làm chắc thêm một thứ đã chạy.
Đó cũng là lý do nền tảng game builder tồn tại: khi mô hình chủ đạo đã tôn trọng một hợp đồng, cả chiến dịch quanh nó — phần thưởng, xác suất, bảng màu, nội dung, bản xuất — trở thành việc cấu hình thay vì dựng lại.
Gửi cho chúng tôi một brief
Nếu bạn có một chiến dịch với một vật thể ở trung tâm — một sản phẩm, một mascot, một phần thưởng, một cỗ máy — cách nhanh nhất để biết nó có hiệu quả là cầm nó trong tay.
Xem những gì chúng tôi đã làm trong các dự án, xem danh mục game thương hiệu, đọc về stack render 3D của chúng tôi, hoặc đơn giản là gửi cho chúng tôi brief. Chúng tôi sẽ gửi lại một đường link.
Các chi tiết kỹ thuật trong bài viết này mô tả công việc do Code Crush thực hiện. Prototype cho khách hàng là concept nếu không ghi khác; ngày đóng Spark AR theo thông báo công khai của Meta.
Câu hỏi thường gặp
- Một đề xuất chiến dịch chơi được mất bao lâu?
- Vài ngày, không phải vài tuần, cho một vòng lặp chơi được cùng một asset 3D chủ đạo. Biến số là phạm vi 3D: một vật thể chủ đạo dựng bằng script thì nhanh, còn một nhân vật có rig kèm biểu cảm khuôn mặt và nhiều trạng thái chuyển động là phần việc dài nhất.
- Chúng tôi nhận được file 3D thật, hay chỉ một video?
- File thật. Nguồn Blender sửa được, glTF/GLB sẵn cho web, và các bản render offline — tất cả ở định dạng mở, mở được ngay trong Blender, Unity, Unreal hay một trình xem web.
- Các bạn có dựng chính xác sản phẩm hoặc mascot của chúng tôi được không?
- Được. Chúng tôi làm từ tranh tham chiếu, ảnh chụp, bao bì hoặc file CAD. Khi một nhân vật có bản quyền kèm quy định cấm vẽ lại hay tô lại màu, bản dựng 3D của chúng tôi là một xấp xỉ để duyệt và phải được đội thương hiệu chấp thuận trước khi phát hành.
- 3D có chạy thật trên điện thoại cấu hình thấp và trình duyệt nội bộ không?
- Điều đó được thiết kế từ đầu, không phải cầu may: hình học nén Draco phục vụ từ tên miền của chúng tôi, một bậc chất lượng riêng cho mobile, giới hạn 30 khung/giây kèm tạm dừng khi ra khỏi màn hình, hỗ trợ giảm chuyển động, và phương án 2D khi không có WebGL. Chúng tôi kiểm tra tới màn hình rộng 320px.
- Các bạn cần gì từ chúng tôi để bắt đầu?
- Bản brief, asset và hướng dẫn thương hiệu của bạn, cơ chế phần thưởng bạn đang hình dung, cùng thị trường và kênh bạn nhắm tới. Nếu một yêu cầu không sống nổi khi gặp thiết bị thật hay nền tảng thật, bạn sẽ nghe điều đó từ chúng tôi ngay trong cuộc trao đổi đầu tiên chứ không phải sau khi ký.
- Bản đề xuất có thể phát hành thành chiến dịch thật không?
- Có. Cùng bản build đó xuất được sang Facebook Instant Games, playable ad và MRAID cho Meta, Google, TikTok và Moloco, hoặc phát hành dưới dạng link kèm mã QR. Điều một chiến dịch thật thêm vào là phía server: lượt quay thật, giữ chỗ tồn kho, hạn mức, biên nhận và chống gian lận.
Thẻ



