Tác giả: Juan Linietsky
Người dịch: Tung Le
Featured photo by rawpixel on Unsplash
Hồi năm ngoái, trong thời gian mình đang tìm hiểu về Godot Engine và chờ đợi bản 3.0 ra mắt, tác giả Juan Linietsky (lead developer của Godot) có đăng một bài viết khá hay nói về quá trình làm game. Dù có vẻ hơi cao siêu với mình nhưng mình vẫn thấy rất muốn dịch nó ra và cuối cùng thì dây dưa đến giờ mới xong.
Bài dịch khá dài (và lại càng dài hơn với mấy câu nhảm nhí này và đống ảnh mình thêm vào) nên có thể sẽ có nhiều chỗ câu cú sai hoặc chưa được ổn, hi vọng sẽ vẫn truyền đạt được những ý chính mà tác giả muốn nói.
Lời người dịch
🚀 Động lực 🔗
Hôm nay tôi dành thời gian để cài đặt lại máy tính nên chẳng code được gì nhiều. Compile Godot ngày càng tốn thời gian hơn, vậy nên tôi nghĩ setup lại máy tính là một trong những cách tốt nhất để tăng tốc cho việc phát triển Godot.
Động lực để tôi viết bài này là vì từng có nhiều dev đã đề nghị tôi từ lâu rồi. Bên cạnh vai trò là lead developer cho Godot, tôi cũng có gần 20 năm kinh nghiệm lập trình và phát hành games, và dành cả một thập kỷ làm tư vấn kỹ thuật.
Nói chung là tôi từng đảm nhận rất nhiều công việc, từ vị trí lập trình viên cho tới chủ dự án. Nhưng phần lớn thời gian thì là giám đốc kỹ thuật hoặc tư vấn kỹ thuật.
Tôi cũng từng sở hữu một vài công ty và giúp đỡ nhiều người ở khía cạnh kinh doanh, thế nên tôi tin là mình có cái nhìn đủ khái quát về toàn bộ quá trình làm games (điều này không có nghĩa là tôi sẽ tránh được thất bại nhé, không bao giờ).
Tôi không (hoặc chưa :D) trở nên giàu có nhờ vào làm games, nhưng tôi đã học được rất nhiều điều… Và hiện tại thì tôi đang say mê với việc phát triển Godot hơn bất cứ điều gì khác.
Tôi tin chắc rằng cũng có nhiều người đã viết về chủ đề tương tự, nhưng bài viết này hoàn toàn dựa trên kinh nghiệm của cá nhân tôi và tôi mong rằng nó sẽ có ích.
Từ lúc Godot mới được release đến giờ, tôi đã thấy nhiều nhà phát triển tạo nên những project tuyệt vời bằng nó. Điểm mạnh nhất của Godot là nhờ vào thiết kế của nó, thật dễ dàng để có thể ném vào một mớ code và khiến mọi thứ hoạt động (rồi sau đó mở rộng dần thành những project lớn) mà không phải lo lắng gì về kiến trúc game. Có nhiều game đã được phát hành, nhưng cũng có một số lượng rất lớn bị bỏ dở.
Tôi thử liên lạc với một số dev để hỏi họ xem lí do là gì, và trong hầu hết các trường hợp, câu trả lời tôi nhận được đều không liên quan đến vấn đề kĩ thuật, mà liên quan tới việc phạm vi dự án ngày càng trở nên quá khó để quản lí.
👨💻 Làm game rất tuyệt, nhưng lại rất khó 🔗
Làm game rất khó. Nó bao quát nhiều lĩnh vực khác nhau nhưng lại chẳng vay mượn được mấy từ quá trình của những lĩnh vực đó.
Đứng ở khía cạnh nghệ thuật và sáng tạo, người nghệ sĩ (họa sĩ, nhạc sĩ, nhà văn) thường sẽ khái niệm hóa một thứ gì đó trước, rồi sau đó thêm chiều sâu vào cho nó. Tương tự như vậy thì ở phát triển game, những cố gắng đầu tiên của bạn trong việc hiện thực hóa gameplay sẽ luôn không thành, và bạn phải sửa đi sửa lại để cải thiện nó. Trong nhiều trường hợp, việc làm cho nó hoạt động là bất khả thi và nhận ra rằng nó cần phải bị bỏ dở để dành thời gian cho những thứ khác là một quyết định vô cùng khó khăn.
Xét về khía cạnh kĩ thuật, các quy trình mà bạn được dạy ở trường đại học chẳng có nghĩa lý gì cả. Kĩ thuật phần mềm được dựa trên việc liệt kê ra các yêu cầu và phát triển use case từ chúng. Từ các use case, tất cả các tương tác sẽ được khái niệm hóa. Nhưng điều này không có nghĩa đối với lập trình game, bởi vì bạn sẽ cần quan tâm đến việc người chơi cảm thấy gì hơn là họ sẽ làm gì.
🍝 Design patterns, có hoặc không 🔗
Ngay cả việc áp dụng các mẫu thiết kế chuẩn cũng không có gì đảm bảo rằng chúng sẽ hoạt động. Một câu chuyện mà tôi gặp nhiều lần trong vai trò tư vấn đó là phải làm việc với các kĩ sư luôn tự lừa dối bản thân rằng họ đã áp dụng thành công MVC cho kiến trúc game của họ (kết quả là làm ra một mớ mì Ý với thịt viên). Tình huống khác là khi các kĩ sư khẳng định rằng họ đã thành công khi không dùng thiết kế hướng đối tượng (mặc dù thật ra họ vẫn áp dụng nó, chỉ là không nhận ra hoặc không chịu thừa nhận mà thôi). Những trường hợp này tôi gặp nhiều không kể xiết.
Một trường hợp nữa mà tôi thấy rất nhiều đó là các lập trình viên quan tâm quá mức đến việc “làm đúng” và “good practices”. Điều này dẫn đến việc code được đóng gói một cách thừa thãi, hậu quả là đến khi spec thay đổi thì việc sửa codebase trở thành một cơn ác mộng.
Nếu bạn đang viết một game, thì cứ viết mọi thứ theo cách đơn giản nhất và nhanh nhất có thể đi. Đừng quan tâm đến thiết kế. Đừng có áp dụng các mẫu thiết kế hay đóng gói gì cả. Hãy cứ làm thật nhanh và lộn xộn, miễn là nó hoạt động. Nếu bạn có ý định cải thiện cho code sạch đẹp hơn, thì chỉ nên làm khi bắt đầu cảm thấy khó làm việc cùng nó. Còn nếu không, đừng đụng vào nó.
Một phản biện thường gặp đó là project cần teamwork và có nhiều lập trình viên cùng làm việc với nó một lúc. Lead programmer yêu cầu code phải sạch đẹp và có tổ chức đàng hoàng, kết quả là quá trình phát triển trở nên rất chậm chạp. Lý do thường là “Chúng ta có thể thay đổi nhân sự bất cứ lúc nào, vậy nên code cần dễ đọc và dễ sửa đổi”. Trong thực tế, phát triển kiểu này sẽ chỉ tốn thời gian hơn và cũng chẳng tiết kiệm được gì về lâu về dài.
Đầu tiên chỉ cần giao cho mỗi lập trình viên trong team một vai trò và trách nhiệm cụ thể. Sau đó thì hãy để họ làm việc theo cách họ muốn, nhanh chóng và lộn xộn, quan trọng là API của họ xuất ra đủ gọn gàng sạch đẹp để giao tiếp với những người khác trong team là đủ. Bỏ đi những lợi thế về mặt tổ chức, nhưng bạn lại nhận được nhiều hơn ở năng suất.
Khi tôi làm việc với Godot, tôi luôn đảm bảo thiết kế và kiến trúc là hoàn hảo nhất có thể. Còn khi tôi làm game, thì tôi lại muốn làm mọi thứ nhanh nhất có thể.
Tại thời điểm này, nhiều bạn đọc có thể đã phát hiện ra rằng Godot được tạo nên để hoạt động theo tiêu chí đó. Nó đề cao năng suất hơn tất cả mọi thứ. Cách hoạt động của hệ thống Scene cho phép áp dụng nguyên tắc “chia để trị” vào phát triển game (thay vì quan tâm tới những thứ vô nghĩa như MVC, hay chia nhỏ các components,… ). Sự đơn giản của GDScripts cũng cho phép bạn viết ra một đống code “ăn liền” và khi chúng đã hoạt động rồi thì bạn sẽ không cần động tới chúng nữa. Để đạt được cảm giác này là điều mà chúng tôi đã cố gắng làm việc với Ariel Manzur từ lâu, trước cả khi Godot được open source.
Đây cũng là lí do tại sao tất cả chúng tôi đã dành nhiều tâm huyết để tạo ra Godot. Dù còn thiếu quá nhiều thứ, nhưng chúng tôi biết rằng chúng tôi lại có những thứ khác mà chưa ai có trước đó.
🚂 Engine không phải là tất cả, quan trọng là cách bạn tiếp cận quá trình phát triển 🔗
Một câu hỏi thường gặp trên các mạng xã hội là “Tôi muốn làm game thể loại X, vậy phải dùng engine nào?". Mặc dù đúng là tùy theo trường hợp cụ thể mà mỗi engine có thể sẽ có những ưu điểm riêng của chúng, nhưng thành công hay không thì vẫn phụ thuộc vào mức độ khả thi của quá trình phát triển.
Sai lầm đầu tiên mà các nhà phát triển thường gặp đó là bắt đầu với art đẹp long lanh, sau đó làm một prototype đơn giản, và nghĩ rằng sẽ làm toàn bộ phần còn lại của game theo cách tương tự. Theo thời gian, sẽ xảy ra một số trường hợp như sau:
- Assets ngon, nhưng gameplay như c**. Cảm thấy cần làm lại từ đầu, nhưng lại quá mất động lực vì đống thời gian vừa bỏ ra cũng như cần bỏ ra.
- Game ngon, nhưng đống assets lại chưa đủ yêu cầu. Cảm thấy có thể làm tốt hơn nhưng nghĩ đến đã nản.
- Game chạy ổn, nhưng lại muốn thêm vào nhiều thứ, và việc chưa có assets khiến cho mất động lực để làm điều đấy.
- Game càng làm thì nhu cầu được đầu tư càng lớn vì độ phức tạp không được lường trước.
Trên đây là vài viễn cảnh thường gặp và cũng là lý do mà hầu hết các dự án thất bại. Tôi chắc chắn rằng chúng nghe khá quen thuộc đúng không. Lần này hãy bắt đầu lại và làm cho đúng, Từ quá trình khái niệm hóa cho tới khi lên kệ!
🚴 Bắt đầu lại nhé, Game có khả thi về mặt thương mại không? 🔗
Chờ đã, không phải là nên có prototype đã sao? Sau khi có một ý tưởng hay, phản xạ tự nhiên thường là xây dựng một prototype cho nó…
Không hẳn đâu. Đây là điểm mà 99,99% các nhà phát triển cá nhân và các studio gặp sai lầm lớn nhất.
Và không, scope không phải là tiêu chí để đánh giá một game có khả thi hay không. Rất nhiều bài viết nói về cách tạo ra một game thành công sẽ bảo bạn rằng hãy giữ cho scope nhỏ nhất có thể để tránh rủi ro. Đây là một lời khuyên tồi và thiếu kinh nghiệm. Đừng nghe theo nó. Không có rủi ro thì sẽ không đạt được gì cả. Mấu chốt là biết cách để quản trị rủi ro.
Hãy mở rộng scope theo ý bạn muốn. Quá trình phát triển sẽ dần hé mở cho bạn biết, dựa theo khả năng và những hạn chế của bạn, đâu là ranh giới. Tham vọng là điều cần thiết để thành công, đừng cắt bỏ đôi cánh của bạn khi còn quá sớm.
Trước khi bắt tay làm prototype, bạn phải trả lời được 4 câu hỏi:
- Ai sẽ chơi game của bạn?
- Bạn sẽ tiếp cận người chơi mục tiêu như thế nào?
- Quá trình phát triển sẽ được tài trợ ra sao?
- Điều gì làm game của bạn khác biệt?
Cụ thể hơn là:
1. Ai sẽ chơi game của bạn?
Đây là câu hỏi đầu tiên bạn cần tự hỏi mình. Hãy hình dung xem ai sẽ muốn chơi game này. Các câu trả lời phổ biến:
- Tất cả mọi người, đại khái kiểu: đây sẽ là một game puzzle, tower defense, casual,… rất hay blah blah…
- Một đối tượng khách hàng cụ thể và phố biến, ví dụ: game RPG, FPS hoặc game chiến thuật.
- Khách hàng ngách, ví dụ như: game phiêu lưu, game turn-based,…
- Người chơi indie: Những người hay tìm chơi các game nhỏ, cool mà không quan tâm nhiều đến thể loại.
- Vân vân và vân vân…
Cố gắng để trả lời câu hỏi này chính xác nhất có thể trước khi bước tới câu hỏi tiếp theo…
2. Làm thế nào để tiếp cận khách hàng mục tiêu?
Đây là điểm mà mọi thứ bắt đầu trở nên khó khăn. Thử đặt ra các trường hợp từ những điều đã nêu ở trên:
Một game Casual: Một game đơn giản ai cũng có thể chơi được (như Angry Birds, 2048, các game runners,…). Đúng vậy, thị trường của bạn sẽ rất lớn, có hàng tỉ khách hàng tiềm năng. Vậy phải chăng… một phát xuống tay ăn ngay tiền lớn? Không hẳn, mọi thứ giờ đã bão hòa đến mức bất cứ thứ gì bạn tung ra đều sẽ nhanh chóng chìm vào quên lãng.
Vấn đề làm truyền thông cho một game mobile thì thôi khỏi nói, vì nó quá đắt. Bạn có thể tìm một nhà phát hành, tuy nhiên hầu hết các nhà phát hành mobile đều là kẻ lừa đảo. Nếu họ bảo bạn rằng họ rất vui khi được phát hành game của bạn, đừng có mà tin! Họ sẽ chỉ phát hành game của bạn đính kèm banner được chỉ tới game của chính họ (thứ sẽ làm ra tiền) thông qua cross promotion. Đúng thế đấy, họ sẽ sử dụng game của bạn cho lợi ích của họ, chứ không phải cho bạn.
Một nhà phát hành game mobile thực sự sẽ hỏi bạn câu này: “KPI của bạn là gì?" hoặc là “Tỷ lệ chuyển đổi và duy trì cho game của bạn là bao nhiêu?". Đó mới là một nhà phát hành thực sự! Và là những người sẽ đầu tư tiền của họ vào game của bạn.
Thật không may, câu hỏi này rất khó để trả lời theo hướng tích cực. Để cho bạn thêm một chút gợi ý, thì phương thức phổ biến nhất để làm ra tiền từ game mobile đó là mô hình free-to-play (nói trắng ra là in-app purchase). Các cách khác thường không có tác dụng. Game phải trả tiền để mua (với nội dung free hoặc trả tiền) thường không làm ra tiền, và lợi nhuận kiếm được từ đặt banner sẽ không đủ để bạn sống (kể cả khi có cả triệu lượt download). Con đường có hiệu quả kinh tế cao nhất chính là biến game của bạn thành free-to-play, nghĩa là người chơi được tải miễn phí, nhưng sẽ phải trả tiền để mua nội dung trong game với mục đích a/ Khiến game dễ hơn b/ Có nhiều tùy biến hơn.
Điều này khá khó để giải thích và cũng vượt quá phạm vi nội dung của bài viết này, nhưng vấn đề chính là, ở mô hình free-to-play, người chơi (hay gọi theo cách thương mại là người dùng) cần phải được mua. Có những công ty sẵn sàng trả, ví dụ như 5$, để có một user chơi game của bạn. Đây không phải là nói đùa, và thậm chí nó còn tốn nhiều tiền hơn thế. Phần lớn người dùng sẽ không tiêu một đồng nào khi chơi game của bạn, nhưng có một số trong đó (tạm gọi là Cá voi) sẽ sẵn sàng trả nhiều hơn con số 5$. Điều đó sẽ đẩy lợi nhuận trung bình thu được trên mỗi user lên khá nhiều.
Thuật ngữ “chuyển đổi” (conversion) có nghĩa là tỉ lệ giữa số tiền trung bình bạn thu được từ mỗi người trên số tiền bạn bỏ ra để mua họ. Nếu bạn bỏ 5$ cho mỗi người chơi, nhưng trung bình bạn kiếm được 8$ mỗi người, bạn sẽ có tỉ lệ chuyển đổi là dương 1.6. Khi game của bạn có tỉ lệ chuyển đổi dương thì mặc định có thể coi nó là một cỗ máy in tiền rồi!
Đây là lúc bạn có thể dễ dàng kiếm được một nhà phát hành để đầu tư vào “UA” (viết tắt của User Acquisition, hay ngắn gọn là mua người dùng). Khỏi cần nói cũng biết để đạt đến mốc này khó như thế nào nếu như không có sự đầu tư thỏa đáng, và những game loại này cần nhiều năm trời để vật lộn với vòng quay phát triển / thua lỗ, cùng với điều chỉnh để tỉ lệ chuyển đổi đạt mức dương.
Nói tóm lại, cơ hội thành công của bạn trên lĩnh vực mobile casual games là từ rất nhỏ cho đến không có (cho dù có phép màu xảy ra). Thế nên tốt nhất là đừng làm, trừ khi với mục đích cho vui hoặc để học.
Các chuyên gia marketing sẽ luôn khuyên bạn rằng, trái với quan niệm phổ thông, thị trường càng lớn thì lại càng khó khăn.
Game chính thống: Những game này được bán với mức đầu tư cho truyền thông lớn để có thể tiếp cận người dùng mục tiêu (và tốn nhiều tiền để phát triển nữa). Nếu bạn có nhiều kinh nghiệm phát triển game, hãy cân nhắc đi theo con đường này.
Game ngách: Thị trường ngách nói chung là dễ tiếp cận. Luôn có những website, diễn đàn, group facebook riêng dành cho nó,… Ngoài ra mỗi thể loại riêng (ví dụ như turn-based, strategy, adventure,…) cũng có những nhà phát hành chuyên biệt có thể cung cấp cho bạn những con số về khả năng tiếp cận của họ nếu bạn hỏi.
Game dạng Indie hoặc thử nghiệm: Steam, GOG,.. là những miền đất hứa cho chúng. Nhớ rằng hầu hết các game sẽ chia thành hai loại rõ ràng, bán rất tốt hoặc không bán được, đừng mong chờ có một khoảng ở giữa cho bạn.
3. Quá trình phát triển sẽ được tài trợ ra sao?
Bạn phải nghĩ đến việc game sẽ cần tài trợ ra sao. Dưới đây tôi sẽ giải thích một vài cách tiếp cận phổ biến để được nhận tài trợ.
Nhà phát hành: Bạn có thể được đầu tư tài chính từ các nhà phát hành một cách dễ dàng nếu như bạn bước đi đúng hướng (điều mà ít ai làm,… nhưng yên tâm, tôi sẽ giải thích thêm ở phần dưới).
Con đường phổ biến nhất là các nhà phát hành sẽ giúp bạn đẩy doanh số và hưởng phần trăm từ đó. Bạn sẽ chỉ nhận được tiền sau khi nhà phát hành thu hồi khoản tạm ứng (phương thức hoàn vốn đầu tư điển hình).
Trong quá trình tìm nhà phát hành, cố gắng tìm những game tương tự với game của bạn và xem ai phát hành chúng. Nói chung họ hiểu thị trường hơn bạn và sẽ đánh giá những rủi ro đối với tựa game của bạn tốt hơn.
Kêu gọi quyên góp: Những website như Kickstarter, Indiegogo hay Patreon hiện nay ngày càng khó hơn để được nhận tài trợ (câu hỏi tiếp theo sẽ giúp bạn ở vấn đề này). Chiến lược thông thường là đặt mục tiêu ít tiền hơn cần thiết (và cung cấp một game nhỏ hơn) rồi sau đó nếu thành công thì tìm đến một nhà phát hành hoặc một nhà đầu tư tư nhân và show cho họ thấy thành công của bạn (về cơ bản là cho họ thấy có nhiều người hứng thú với game của bạn) và bạn có thể kiếm được số tiền cần thiết còn lại.
Trợ cấp: Đối với một số đất nước có định hướng đầu tư vào ngành công nghiệp game, bạn có thể làm việc với các cơ quan nhà nước để kiếm một khoản trợ cấp nho nhỏ cho mình.
Nhà đầu tư: Có một số nhà đầu tư chuyên về lĩnh vực game, nhưng nhìn chung là họ sẽ muốn sở hữu một phần công ty hoặc tài sản sở hữu trí tuệ của bạn. Dạng phổ biến nhất là Vốn hạt giống (sẽ nói thêm sau).
Bán hàng trước và Phát triển cộng đồng: Theo tôi đây là một trong những cách tốt nhất để huy động vốn phát triển, tuy nhiên phải được thực hiện đúng cách. Ý tưởng ở đây là phát triển game của bạn cùng lúc với việc xây dựng một cộng đồng trung thành trong quá trình phát triển. Bạn phải thực sự giỏi trong việc này, phải biết cách đưa họ vào quá trình phát triển và lắng nghe họ. Khi cộng đồng lớn dần lên, sẽ có thêm nhiều người sẵn sàng pre-purchase game của bạn. Cộng đồng đó đồng thời sẽ là nguồn thông tin để những người khác biết đến game của bạn, thế nên bản thân cộng đồng đó sẽ tự nó mở rộng và phát triển.
4. Điều gì làm game của bạn khác biệt?
Nếu game của bạn không đủ khác biệt đối với những thứ đã có trên thị trường (một cách rõ ràng), nó sẽ thất bại. Mọi người sẽ không chơi nó, các nhà phát hành sẽ không hứng thú, và sẽ không có cộng đồng nào hình thành xung quanh nó cả.
Khó hơn là bạn sẽ phải có khả năng truyền đạt sự khác biệt này cho mọi người biết một cách dễ dàng và chỉ bằng một câu nói, một hình ảnh, hay một đoạn video ngắn. Nếu nó không gây ấn tượng thì nhiều khả năng là nó sẽ thất bại. Nếu nó quá giống những game khác, nó cũng rất có thể sẽ thất bại. Nó cần phải khác biệt.
Sự khác biệt có thể đến từ một gameplay sáng tạo, hoặc một art style lạ chưa bao giờ thấy. Thiết kế nhân vật độc đáo cũng có thể gây ra sự quan tâm. Đối với một game RPG hoặc phiêu lưu thì câu chuyện và art là chìa khóa của vấn đề.
🏗️ Xây dựng một Prototype 🔗
Nếu bạn tự tin rằng bạn có thể trả lời hết các câu hỏi trên thì đó là lúc bạn có thể bắt tay vào làm prototype. Mục đích của một prototype là để chứng mình ý tưởng của bạn khả thi, và thẩm mỹ của bạn (đồ họa, âm thanh,…) đang đi đúng hướng.
Tôi đã gặp nhiều designer tự tin rằng ý tưởng của mình sẽ thành công để rồi cuối cùng chứng kiến chúng thất bại khi lên prototype. Không bao giờ tránh được điều này.
Đồ họa (và âm thanh) của bạn có thể chưa hoàn thiện ở giai đoạn này. Code của bạn cũng có thể còn rất bừa bãi. Đó không phải là vấn đề. Điều quan trọng là phải có trải nghiệm tốt. Làm prototype một cách khôn ngoan là phải đem đến cảm giác như một sản phẩm hoàn thiện hoặc gần hoàn thiện. Nó phải truyền đạt được ý tưởng của bạn một cách tốt nhất có thể.
Làm đi làm lại thật kĩ trong giai đoạn này trước khi chuyển sang giai đoạn tiếp theo là mấu chốt sống còn. Đừng bỏ qua một tính năng chính nào và cố gắng sửa cho đến khi nó mang lại cảm giác hoàn hảo nhất.
Bất cứ điều cốt lõi nào mà không được giải quyết ở giai đoạn này sẽ khiến việc sửa chữa về sau cực kì khốn khổ. Điều khiển phải thật mượt mà và thỏa mãn. Làm sao để tất cả chỉ đơn giản là nhấn và xem ý tưởng của bạn.
Cố gắng thu thập feedback nhiều nhất có thể ở giai đoạn này.
Về mặt tiền bạc, giai đoạn prototype là thời điểm tốt nhất để tìm kiếm nguồn đầu tư vốn hạt giống. Những nhà đầu tư dạng này sẽ cho bạn một khoản tiền đủ để phát triển theo nhát cắt đứng (vertical slice - xem phần sau) và yêu cầu một khoản đáng kể từ doanh thu của bạn (khoảng 30-40%).
Tinh thần đằng sau đầu tư vốn hạt giống là họ đi thả một khoản tiền nhỏ vào nhiều dự án chưa được kiểm chứng, có tỉ lệ rủi ro cao. Và chỉ cần một trong số đó thành công, họ sẽ kiếm được bội tiền.
🍰 Tạo một nhát cắt đứng 🔗
Nếu bạn tự làm game một mình, vào thời gian rảnh rỗi, hoặc có một vài sự đầu tư nhỏ thì bước này không quan trọng. Còn nếu không thì đây là bước chìa khóa để giữ nguồn đầu tư cho tới khi sản phẩm hoàn thành (hoặc ít nhất là tới giai đoạn Alpha).
Ý tưởng của nhát cắt đứng là dựng một phần nhỏ của game, nhưng phần này phải có chất lượng ở mức hoàn thiện.
Lấy ví dụ, nếu game của bạn có 30 levels (nhiệm vụ / cảnh / địa điểm,…), bạn phải làm 2 hoặc 3 trong số đó. Và chúng phải có chất lượng tuyệt đối như sản phẩm hoàn thiện. Ngay cả mối liên kết đối với những phần còn lại của game cũng phải có đầy đủ, kể cả khi chẳng dùng để làm gì.
Chúng không nhất thiết phải là đoạn đầu tiên của game, có thể là một đoạn bất kì ở giữa (dù rằng một đoạn intro hấp dẫn thì sẽ rất tuyệt, nhưng sẽ khó làm hơn).
Tại sao nhát cắt đứng lại rất quan trọng đối với việc giữ nguồn đầu tư? Lí do là bởi:
1. Giảm rủi ro cho nhà đầu tư
Đầu tư là mạo hiểm. Rủi ro càng thấp, cơ hội để được đầu tư càng lớn. Nếu một prototype có ý nghĩa chứng minh được rằng ý tưởng hoạt động, thì một nhát cắt đứng sẽ chứng tỏ được bạn có khả năng hoàn thiện toàn bộ game.
2. Khiến ước tính chi phí phát triển trở nên đáng tin cậy
Đến thời điểm này, bạn chắc đã biết được cần bao nhiêu và bao lâu để thực hiện một nhát cắt đứng.
Từ đó có thể áp dụng phép ngoại suy: Nếu như làm 10% của game (phạm vi của nhát cắt đứng) tốn 20k$, bạn sẽ dễ dàng ước tính được chi phí để làm toàn bộ game sẽ tốn đâu đó khoảng 200k$.
3. Dễ dàng điều chỉnh theo ngân sách khác nhau
Nhiều nhà phát hành và nhà đầu tư có thể không đủ tài chính để làm một game với độ dài và lượng content như bạn mong muốn. Nhát cắt đứng cho phép bạn có khả năng suy tính ra phần content mà bạn phải điều chỉnh để phù hợp với ngân sách họ có cho bạn.
💾 Phát triển đến giai đoạn Alpha 🔗
Đây là nơi mà hầu hết nhà phát triển vấp phải sai lầm nghiêm trọng. Đừng thêm vào game bất cứ asset hoàn thiện nào trước khi bạn đạt tới giai đoạn Alpha. Luôn sử dụng placeholder art. Ngoại lệ duy nhất là animation, nếu thể loại game bạn đang làm đòi hỏi bắt buộc phải có (ví dụ thể loại fighting).
Toàn bộ nội dung trong game phải sử dụng asset placeholder (đồ họa vẽ nháp, khối vuông tròn, khối 3D cơ bản,…).
Tôi biết rằng sẽ rất khó chịu, cảm giác được chứng kiến đứa con tinh thần của mình lột xác từ sâu thành bướm thật sự vô cùng hạnh phúc. Tuy nhiên bạn cần phải kìm nén trước sự cám dỗ đó.
Có rất nhiều lý do cho việc này:
1. Gameplay là ưu tiên hàng đầu
Thứ định hình nên game của bạn là một gameplay tốt. Nó phải hoạt động một cách tốt nhất có thể, vậy nên cần ưu tiên phát triển nội dung trước. Phải đảm bảo rằng mọi tính năng đã được triển khai đầy đủ, và game đã có thể chơi từ đầu đến cuối. Control và các cảm giác khi chơi phải cảm thấy thật đã.
2. Alpha dễ nhận tài trợ
Alpha là thời điểm trong giai đoạn phát triển mà bạn có sức mạnh (và sự thoải mái) lớn nhất để đi đàm phán với các nhà đầu tư và phát hành. Bởi vì:
- Bạn chứng tỏ được bạn có khả năng làm toàn bộ assets hoàn thiện, và bạn biết phải mất bao lâu để làm. (dựa vào nhát cắt đứng)
- Bạn chứng tỏ được game của bạn hoạt động tốt với toàn bộ nội dung (chơi được và cảm thấy fun), tức là không còn rủi ro.
- Bạn vẫn chưa tiêu tốn quá nhiều, vì mới chỉ làm chủ yếu với các programmer, cùng 1-2 artist/animator/game designer.
- Khoản đầu tư thực sự sẽ là thuê các artist để hoàn thiện phần còn lại của game. (animation, âm nhạc, vfx, sfx,…)
Kết quả là rủi ro được giảm thiểu ở giai đoạn này. Và công việc đàm phán sẽ trở nên dễ dàng hơn.
🎏 Thêm assets, hướng tới giai đoạn Beta 🔗
Beta là giai đoạn mà bạn hoàn thiện sản phẩm cuối cùng của mình (chưa kể đến fix bugs và một vài chỉnh sửa nhỏ nếu có). Có nghĩa là bạn sẽ phải làm toàn bộ assets còn thiếu để thêm vào.
Giai đoạn này rất thú vị và cũng rất thỏa mãn, nhưng khá là khó. Từ công ty lớn cho đến những nhà phát triển độc lập, bước thêm assets hoàn thiện luôn nằm gần cuối giai đoạn phát triển.
Đối với các indie dev, đây là thời điểm thích hợp để thuê người làm art, sfx, âm nhạc,… Bạn biết được các yêu cầu sẽ không thay đổi nữa, thế nên bạn sẽ chi tiêu ít hơn. Bạn có thể đề nghị một khoản ngân sách chính xác và kí những hợp đồng cụ thể cho các nội dung cần thực hiện.
Điều này giúp tránh khỏi một vấn đề thường gặp khi thuê artist rồi trả lương tháng, sau đó không đủ tiền để trả cho họ nữa bởi thời gian phát triển đột nhiên kéo dài hơn dự tính.
Ngoài hoàn thiện assets, một vài công việc điển hình khác (nếu có) của giai đoạn chuyển đổi từ Alpha sang Beta bao gồm dịch nội dung game, làm cinematic, ghi âm thoại,…
🥇 Giai đoạn Gold 🔗
Một game đạt đến giai đoạn Gold khi đã fix hầu hết các bug còn lại và game chạy đủ ổn định. Để làm điều này sẽ mất một thời gian nhất định, vậy nên nhiều studio quyết định phát hành game ra trước rồi sau đó mới sửa dần bằng các update nhỏ. Đây không phải là một cách hay nhưng ngành công nghiệp game đã quen với nó rồi.
🎀 Phát hành 🔗
Kinh nghiệm của tôi đối với việc phát hành khá là tổng hợp. Các nhà phát hành thường sẽ chơi một canh bạc với các game của họ. Họ hỗ trợ tiền cho khá nhiều dự án, nhưng chỉ thực sự đầu tư (trong việc quảng bá) cho những sản phẩm có lượng bán tốt. Những sản phẩm còn lại hiếm khi được nhận thêm tiền và dần dần bị bỏ mặc cho đến chết hẳn. Đó là quy luật của cuộc sống.
Như bạn đã biết, ngay cả khi bạn đạt được thỏa thuận để phát hành, không có gì đảm bảo là bạn sẽ nhận được tiền đầu tư để quảng bá. Trường hợp duy nhất để bạn nhận được một thỏa thuận có lợi hơn (Nhà phát hành đồng ý cung cấp một khoản tiền cố định dành cho việc quảng bá), là khi bạn tiếp cận nhà phát hành với một game đã hoàn thiện hoặc ít nhất là ở giai đoạn Alpha.
Đầu tiên, tôi cảm thấy khá khó chịu với thực tế này. Nhưng giờ tôi hiểu ra rằng đó là cách hành xử tự nhiên khi ở vị trí của các nhà phát hành. Họ là các công ty thương mại chứ đâu phải tổ chức từ thiện.
Và đừng hiểu sai về điều này. Có nhà phát hành vẫn hơn là không. Ngay cả khi họ không đầu tư tiền vào việc quảng cáo, các nhà phát hành thường vẫn sở hữu những kênh truyền thông của riêng họ ở nhiều phương tiện khác nhau và thậm chí là có những con chiên ngoan đạo sẵn sàng bỏ tiền ra mua game của họ. Họ cũng hiểu rất rõ về thị trường mục tiêu, vậy nên khi game của bạn không bán được, thì không phải là do họ không làm gì để quảng bá nó.
Tôi phát hiện ra rằng trong hầu hết các trường hợp, bạn có thể thương lượng với nhà phát hành để họ trả lại bản quyền phát hành cho bạn nếu tiền game bạn làm ra ít hơn một ngưỡng nhất định… thế nên bạn vẫn có hi vọng để đem đi pitch ở một chỗ khác. Tất nhiên là nếu bạn đã nhận đầu tư từ nhà phát hành, họ sẽ yêu cầu bạn trả lại khoản đầu tư này trước khi cho phép bạn làm điều đó (và bạn có thể thương lượng với nhà phát hành mới để xin giúp đỡ).
Nói chung kinh nghiệm của tôi ở đây là nếu một game đã không bán được, thì có đầu tư thêm bao nhiêu tiền quảng bá đi nữa thì cơ hội vẫn sẽ rất mong manh.
À nhắc tới chuyện engine, bạn có thể đã từng được nghe vài người nói rằng các nhà phát hành sẽ yêu cầu bạn phải dùng Unity, Unreal hay một engine cụ thể nào đó. Nói phét đó. Tôi từng phát hành cả tá game được làm bằng Godot cho console, mobile và PC và chẳng cái nào trong số đó bị đòi hỏi gì về công nghệ cả.
Trường hợp duy nhất bạn có thể nghe thấy yêu cầu này đó là khi bạn làm thuê cho các game có sử dụng sở hữu trí tuệ của bên thứ ba (ví dụ như Disney, Lego,…). Họ có thể sẽ đề nghị bạn làm sao để source code có thể được thay đổi mà không cần hỗ trợ của bạn. Điều này cũng phụ thuộc vào cách bạn thương lượng.
👔 Tự phát hành 🔗
Tự phát hành cực kì khó. Phải làm cả đống thứ cho việc quảng bá sẽ tốn rất nhiều thời gian, riêng việc học cách làm điều đó thôi cũng đã vậy rồi. Tôi biết một vài nhà phát hành nhỏ nhận làm việc này với điều kiện được nhận phần trăm doanh thu (hoặc trả tiền theo tháng). Mà tôi có cảm giác hầu như toàn là lừa đảo, thực ra có thể kiểm chứng bằng cách check xem các game đã phát hành của họ làm ăn ra sao. SteamSpy là một công cụ tốt để làm điều này.
📃 Lời cuối 🔗
Như bạn đã thấy, toàn bộ quá trình để làm một game rất phức tạp và chẳng có gì để đảm bảo chắc chắn thành công cả. Tuy nhiên bài viết này mong muốn đưa bạn qua những bước quan trọng nhất của quá trình (mọi ý kiến đóng góp từ những bạn có nhiều kinh nghiệm hơn đều được chào đón).
Thời buổi bây giờ, người ta ước tính được rằng cứ 1 trên 10 games được đầu tư thì sẽ thành công. Và chỉ có 2 hoặc 3 thu hồi được vốn (số liệu có thể thay đổi tùy thuộc vào nguồn).
Nhưng nếu bạn tiến bộ dần, thì bạn có thể sống nhờ vào nó. Nếu bạn cứ lặp đi lặp lại quy trình prototype/vertical slice/alpha/gold/publish đủ số lần, tôi nghĩ ngày mà bạn đạt được thành công trong cuộc đời đã rất gần rồi đó.
Đơn giản là đừng từ bỏ!
Comments