Bài viết được dịch từ trang web Makeuseof
Có rất ít trò game có thể nhúng mình vào trong văn hóa tinh thần giống như trò Flappy Bird đã làm được 2 năm về trước. Nó là một trong những trò game di động có được thành công lan tỏa nhất trong lịch sử. Nhưng một điều có thể gây ngạc nhiên cho bạn đó là người tạo ra trò Flappy Bird không phải là một công ty game lớn, mà nó được tạo ra từ phòng ngủ của một tay lập trình viên sống tại Hà Nội tên là Đông Nguyễn.
Tại một thời điểm nào đó, bạn có thể ước ao rằng mình cũng tạo ra được những trò game iPhone của riêng bạn. Có lẽ bạn muốn làm điều đó để theo đuổi đam mê sáng tạo, hoặc có thể bạn chỉ muốn kiếm thêm một chút thu nhập. Vâng, tôi có một số tin tốt và một số tin xấu dành cho bạn. Tin tốt đó là việc này hoàn toàn có thể làm được, như nhiều người khác đã chứng minh điều đó.
Tin xấu đó là nó không phải là việc dễ dàng. Bạn sẽ cần phải nâng cao các kỹ năng của mình.
Học lập trình di động iOS Swift 2.x qua dự án thực tế. Hấp dẫn, dễ hiểu từ bài đầu tiên đến bài cuối cùng
Các kỹ năng cần có
Nếu bạn đã từng hoàn thành một trò video game và quan sát các công đoạn để làm ra nó, bạn có thể thấy rằng các hãng làm game thường rất lớn. Hầu hết các trò game đều được hỗ trợ bởi rất nhiều người làm các công việc khác nhau, nhưng tất cả họ đều làm việc trên cùng một dự án. Họ có thể là những kỹ sư về âm thanh, các nhà thiết kế đồ họa, các nhà quản lý dự án, và dĩ nhiên là có các lập trình viên.
Nếu bạn đang làm một trò game iOS của riêng mình, bạn sẽ cần phải làm tất cả các công việc của những người đó. Bạn sẽ phải luyện rất nhiều kỹ năng khác nhau, và trở thành một người đa năng. Bạn đã sẵn sàng chưa?
Dĩ nhiên đầu tiên bạn cần một nền tảng trong phát triển phần mềm. Biết cách làm thế nào để viết code là điều cần thiết, nhưng việc hiểu biết lý thuyết cũng rất hữu ích. Có rất nhiều khái niệm cốt lõi trong khoa học máy tính được sử dụng trong việc thiết kế các trò game. Ví dụ, một sự hiểu biết về các thuật toán flocking, và thuật toán tìm đường đi ngắn nhất của Djikstra có thể giúp bạn thiết kế hành vi của các nhân vật.
Trừ khi bạn đang lên kế hoạch làm một game dạng text-adventure, còn không thì bạn sẽ cần phải thực hiện một số đồ họa. Nói không ngoa rằng công việc thiết kế là rất khó. Theo quan điểm của tôi thì nó còn khó hơn cả lập trình nữa. Bạn không chỉ cần phải biết làm thế nào để sử dụng các công cụ như Photoshop và tạo mô hình 3D bằng Blender, bạn cũng sẽ cần phải biết một số lý thuyết về thiết kế.
Có trò video game nào mà không có một số giọng nói nhân vật, âm nhạc điện ảnh, và các hiệu ứng âm thanh trung thực? Trừ khi bạn có một ngân sách khá lớn, còn không thì bạn sẽ phải làm một số việc để tự tạo ra âm thanh cho trò game của mình.
Cuối cùng, để tạo ra một câu chuyện thành công cho trò game của mình, bạn sẽ cần thêm một số thủ thuật về kinh doanh. Công việc này bao gồm việc quảng bá về sản phẩm, quản lý các mối quan hệ của bạn với cả thị trường và khách hàng.
Đầu tiên, chúng ta hãy xem xét một số kỹ năng phát triển phần mềm cốt lõi cần có để làm một trò game.
Lập trình trò game của bạn
Khi nói đến việc xây dựng các ứng dụng iOS, có rất nhiều cách khác nhau làm được điều này. Có vô số hướng tiếp cận, và cũng không thiếu các công cụ và phương pháp hứa hẹn làm cho quá trình phát triển này trở nên dễ dàng hơn.
Đầu tiên, đó là theo cách của Apple để phát triển các trò game. Điều này nghĩa là bạn tải về Xcode, đây là một IDE (Integrated Development Environment) và là sản phẩm chủ lực của Apple, bạn có thể tải nó miễn phí trên Mac App Store (bạn chỉ có thể phát triển ứng dụng iOS trên một máy Mac). Các ứng dụng được xây dựng bằng Xcode thường được thực hiện bằng các ngôn ngữ C++, Swift hoặc Objective-C.
Swift đã được Apple công bố tại sự kiện World Wide Developer Conference (WWDC) vào năm ngoái, và nó nhận được rất nhiều sự hào hứng từ các nhà phát triển. Tại sao ư? Chủ yếu là bởi vì các ứng dụng native có thể được xây dựng mà không phải sử dụng một ngôn ngữ phiền phức, rườm rà như Objective-C hoặc C++. Đây là một ngôn ngữ trông giống như CoffeeScript, Python hoặc Ruby, nhưng có sự linh hoạt và sức mạnh của một ngôn ngữ cấp thấp hơn.
Nhược điểm của Swift ở chỗ ngôn ngữ này còn rất mới, và vì vậy nó vẫn còn nhiều vấn đề cần khắc phục. Nhưng theo thời gian thì tất cả những vấn đề này sẽ được giải quyết. Nhưng cho tới lúc đó bạn cũng nên quan tâm đến ngôn ngữ Objective-C. Điểm thuận lợi của ngôn ngữ này đó là nó đã cũ và mọi người đã biết nhiều về nó, quan trọng hơn là đã thành thạo cách sử dụng nó. Hơn nữa, phần lớn các tài liệu và các bài tutorial trên mạng cho phát triển iOS đều hướng dẫn bằng ngôn ngữ Objective-C. Nếu bạn chọn làm việc với Swift thì bạn có thể phải tự viết rất nhiều thứ.
Có những lựa chọn khác. Nếu bạn đã biết một ngôn ngữ lập trình và không muốn học Swift, thì bạn có thể muốn xem những framework phát triển ứng dụng của các hãng thứ ba tồn tại cho ngôn ngữ đó. Các lập trình viên Ruby có thể tạo ra các ứng dụng di động bằng RubyMotion, trong khi các lập trình viên .NET (gần đây đã trở thành mã nguồn mở) có Xamarin. Lợi thế của việc này đó là bạn không cần phải học sử dụng một cái gì đó mới. Nhược điểm đó là chúng làm tăng một chút chi phí khi xuất bản ứng dụng của bạn lên App Store. Ví dụ, gói RubyMotion rẻ nhất có chi phí $15 đô-la/tháng, tính theo năm. Đó cũng không phải là một con số lớn lắm.
Nếu bạn đã biết HTML, JavaScript và CSS, thì bạn đã có những kỹ năng cơ bản cần thiết để tạo ra một trò game iOS. Corona và Phone Gap là các nền tảng cho phép bạn sử dụng các kỹ năng phát triển web hiện tại của bạn, và chuyển chúng vào trong các ứng dụng di động native. Không yêu cầu trình duyệt. Vấn đề đó là các ứng dụng di động dựa trên HTML5 chạy rất chậm. Một sự kiện đáng chú ý vào năm 2012 là Facebook đã phải viết lại ứng dụng iOS của họ từ HTML5 thành dạng native, chỉ để cho nó có thể chạy với tốc độ chấp nhận được.
Cuối cùng, nếu bạn hoàn toàn bỏ ý định về việc viết code, thì bạn có thể muốn quan tâm đến các giải pháp không cần viết code, nơi mà các phần code phức tạp được xây dựng bởi một thuật toán chứ không phải bởi con người. Không có quá nhiều những công cụ loại này cho iOS. Không có MIT App Inventor cho thế giới của Apple. Bạn có thể sử dụng Microsoft’s TouchDevelop, cái mà chúng tôi đã giới thiệu trước đây, và Kino by Pad2Play.
Một điều cần nhấn mạnh là các ứng dụng được làm ra bằng các công cụ tự động nói chung không được tốt như các ứng dụng được xây dựng bằng bàn tay con người. Nhưng nếu bạn chỉ xây dựng một trò game cho bản thân, hoặc chỉ để cho vui, thì chúng cũng có thể chấp nhận được.
Lựa chọn thư viện đồ họa của bạn
Bên trong mỗi chiếc xe hơi là một động cơ, và đằng sau mỗi video game là một thư viện đồ họa. Chúng cho phép bạn định nghĩa và điều khiển khía cạnh trực quan trò game của bạn. Ở đây, có rất nhiều tùy chọn để bạn chọn lựa, mỗi cái đều có ưu và nhược điểm riêng của nó.
Swift không chỉ là thứ duy nhất gây xôn xao đã được Apple giới thiệu tại sự kiện WWDC 2014. Ngoài ra họ còn công bố một sản phẩm có tên gọi là Metal, được xây dựng kết hợp với Epic Games. Metal là dành riêng cho iOS có thể tạo ra chất lượng trực quan tuyệt đẹp, bất chấp những giới hạn phần cứng của iPhone và iPad. Nó có thể làm được điều đó trong khi lại tiêu tốn ít năng lượng của pin hơn bạn tưởng. Nếu bạn chưa tin thì hãy xem phần trình diễn demo dưới đây nhé!
Dĩ nhiên, nó cũng có những nhược điểm. Thứ nhất, vì Metal là dành riêng cho iOS, nên bạn có thể quên mất rằng việc đưa trò game của bạn sang Android có thể phải viết lại khá nhiều. Thứ hai, nó chỉ chạy trên các iDevices sử dụng các con chip A7, A8 và A8X, đây là một tin xấu đối với bất cứ ai đang sử dụng một chiếc iPhone thế hệ cũ. Vì nó còn mới, nên có khá ít tài liệu để học và làm việc khi bạn muốn đưa nó vào dự án mới nhất của mình.
Nếu bạn đang tìm kiếm một cái gì đó đã tồn tại khá lâu và đa nền tảng hơn Metal, thì bạn sẽ vui mừng khi biết rằng không hề thiếu các giải pháp thay thế ở ngoài kia. Có lẽ một trong những giải pháp rõ ràng nhất đó là OpenGL ES (Open Graphics Library for Embedded Systems).
OpenGL là tiêu chuẩn vàng của các thư viện đồ họa. Nó có sẵn cho hầu hết mọi nền tảng đơn lẻ trên thế giới này, liên tục được phát triển và cải tiến. Mặc dù hướng tiếp cận của nó tương đối cấp thấp, nhưng vô cùng linh hoạt và đã được sử dụng thành công trong cả các game đơn giản cũng như phức tạp.
Cuối cùng, chúng ta còn có SDL (Simple DirectMedia Layer). Thư viện đa nền tảng này có thể được sử dụng để tạo ra các đồ họa 2D, ngoài việc truy cập tới các thiết bị đầu vào của máy.
SDL có tốc độ cực nhanh, nhưng bạn không thể sử dụng một mình nó cho một trò game iOS. Chỉ vì nó quá mộc mạc và tiếp cận ở mức thấp, và không hỗ trợ đồ họa 3D. Một kịch bản sử dụng phổ biến hơn của SDL trong một dự án game đó là chạy nó cùng với một thư viện đồ họa ở cấp cao hơn, như là OpenGL chẳng hạn.
Tuy nhiên, điều đó không làm giảm giá trị của SDL trong việc trở thành một lựa chọn khả thi cho phát triển game iOS. Đối với các trò game nhỏ hơn và ít phức tạp, bạn có thể thậm chí thấy rằng nó phục vụ nhu cầu của bạn khá tốt. Để xem cụ thể ra sao, bạn hãy kiểm tra ứng dụng đơn giản Hello World này nhé!
Cuối cùng, có những thư viện đồ họa của hãng thứ ba được xây dựng dựa trên những cái hiện có, với mục đích làm cho công việc phát triển trở nên dễ dàng và nhanh hơn. Một ví dụ là Cocos2D, nó là miễn phí và được cung cấp theo giấy phép của MIT. Cocos2D là độc lập ngôn ngữ và làm việc với cả Objective-C và Swift.
Âm thanh, âm nhạc và đối thoại
Tại một số thời điểm trong quá trình phát triển của mình, bạn sẽ có thể muốn bổ sung thêm một số âm thanh. Thật khó tin là các âm nhạc, các hiệu ứng âm thanh, và hội thoại có thể biến một trò game thành một cái gì đó trở nên hấp dẫn hơn nhiều.
Các hiệu ứng âm thanh có thể rất tốn kém khi bạn mua nó, nhưng nó có thể được tạo ra bằng các dụng cụ đơn giản trong gia đình của bạn với một chiếc microphone tốt. Bạn cần mô phỏng tiếng bước chân ư? Hãy đổ đầy một bát nước rửa với sỏi và đi bộ trên đó. Tiếng súng có thể được mô phỏng bằng cách đánh hai cái khay nướng vào nhau, hoặc bằng cách gõ một cái muỗng gỗ vào một cái chảo. Chỉ cần dành thời gian để thử nghiệm. Bạn sẽ rất ngạc nhiên với các kết quả thu được cho mà xem.
Nếu bạn không tạo ra được âm thanh ưng ý theo kiểu trên, thì hãy tìm kiếm các thư viện âm thanh công cộng hoặc theo giấy phép creative-commons đã nổi lên trong vài năm gần đây, khi ngành phát triển game độc lập có sự hồi sinh. Ba ví dụ đáng chú ý gồm pdsounds, freesound, và soundjay.
Nếu bạn cần một cái gì đó cụ thể, chẳng hạn như là một câu thoại, bạn luôn có thể trả tiền để mua nó. Điều này nghe có vẻ đắt đỏ, nhưng thực ra nó không phải vậy. Fiverr là một thị trường dành cho những người làm các công việc lặt vặt, hầu hết là trong lĩnh vực sáng tạo. Ở đây, bạn có thể tìm thấy bất cứ thứ gì từ người viết code, cho đến những diễn viên lồng tiếng tài năng. Chi phí của những dịch vụ này thì - bạn thử đoán xem - chỉ là $5 đô-la Mỹ.
Cho dù bạn có cần tìm thuê một ông già với giọng Anh, hoặc một phụ nữ trẻ với giọng Mỹ, thì bạn sẽ tìm thấy một diễn viên lồng tiếng phù hợp.
Đồ họa & Thiết kế
Là một người có khiếu thẩm mỹ không đến nỗi tệ lắm, tôi luôn cố gắng trong việc tạo ra các đồ họa và nhân vật cho trò game của mình. Nếu muốn kiểm chứng lời tôi nói. Bạn chỉ cần xem qua một trong những trò game đầu tiên mà tôi đã làm, CakeSteroids. Vâng, đó được xem là một chiếc bánh.
Thiết kế thực sự không phải là sở trường của tôi. Công việc này không chỉ là việc làm ra một cái gì đó trông đẹp mắt, mà có cả tính khoa học ở trong đó nữa. Tính khoa học đã được giải thích một cách đẹp đẽ trong cuốn sách Design For Hackers. Nếu bạn là người không có khiếu về thiết kế thì bạn có thể tuyệt vọng ngay lúc này. Nhưng có nhiều cách để tạo ra thiết kế nhân vật và các tài sản của bạn một chút dễ dàng hơn.
Tôi đã nhận thấy rằng hầu như luôn luôn dễ dàng khi phác họa một cái gì đó hơn là vẽ nó trên máy tính. Vì vậy, hãy lấy một cây bút và một tờ giấy, và tạo ra nhân vật của bạn. Một khi bạn đã hoàn thiện được nhân vật, hãy scan nhân vật để đưa vào máy tính. Sau đó, tải về một chương trình đồ họa vector miễn phí tên là Inskcape. Sau khi cài đặt, bạn hãy import bản vẽ đã scan của mình và convert nó thành một hình bitmap hữu ích bằng chức năng Trace Bitmap.
Nếu cách này không phù hợp với bạn, thì vẫn chưa hết hy vọng. Tương tự như các tài sản âm thanh, cũng không thiếu các ví dụ đồ họa miễn phí bản quyền ngoài kia. Chúng có khuynh hướng được cung cấp công cộng hoặc dưới các giấy phép creative commons, và được miễn phí, mặc dù họ thường hỏi bạn đóng góp tiền ủng hộ. Có rất nhiều trang web cung cấp loại này, nhưng một trong những trang đáng đề cập nhất là OpenGameArt.
Một khi trò game của bạn đã được xây dựng xong, bạn có thể chuyển sang những vấn đề nhỏ hơn như đảm bảo chất lượng sản phẩm.
Kiểm thử
Các lập trình viên iOS có phần kiểm thử dễ dàng hơn. Điều này đặc biệt đúng khi so sánh với người anh em Android của họ, người ta phải vật lộn để làm cho các ứng dụng của họ có thể làm việc trong một hệ sinh thái Android ngày càng bị phân mảnh, với hàng ngàn thiết bị khác nhau.
Tuy nhiên, điều này không phủ nhận sự cần thiết phải kiểm thử ứng dụng của bạn. Đầu tiên, bạn cần phải xem nó hoạt động như thế nào. Sau đó bạn cần phải xác định bất kỳ lỗi hoặc trục trặc nào có thể gây tổn tại đến trò game của bạn.
Tất nhiên bạn có thể tự kiểm thử ứng dụng của chính mình - mặc dù bạn có thể không muốn làm vì công việc này khá tẻ nhạt. Quan trọng hơn, bạn không thể hy vọng rằng mình sẽ trở thành một người kiểm thử khách quan được. Nếu không có một cặp mắt tinh nhạy, thì bạn có thể thấy mình đã xuất bản một trò game có quá nhiều lỗi rành rành mà mắt mình đơn giản đã không nhận ra. Luôn luôn là hữu ích khi có một ý kiến thứ hai, và cũng không thiếu các công ty (có tính phí) sẽ giúp bạn làm điều đó.
Một công ty kiểm thử sẽ thử ứng dụng của bạn trên rất nhiều thiết bị, dưới rất nhiều điều kiện khác nhau. Họ sẽ đưa ra dự đoán về những gì sẽ xảy ra, và họ sẽ xem liệu ứng dụng của bạn có thực hiện theo những dự đoán đó hay không. Điều quan trọng nhất là họ luôn làm việc với một con mắt khách quan.
Có hàng trăm công ty kiểm thử, mỗi công ty tính phí theo cách khác nhau. Theo nghiên cứu của tôi, có 3 công ty nổi bật ra khỏi đám đông. Công ty TestElf sẽ tính phí $50 đô-la/ứng dụng. Applause, sẽ cung cấp cho bạn một số hướng tiếp cận kiểm thử, và sẽ tính phí khác nhau phụ thuộc vào sự tỉ mỉ trong công việc kiểm thử đó. Cuối cùng, AppThwack cung cấp các kiểm thử chi tiết và kỹ lưỡng, cùng tốc độ nhanh chóng với chỉ $20 đô-la/tháng.
Một khi bạn đã có một ứng dụng hoàn thiện, thì đó là lúc để phát hành nó ra thế giới.
Đưa ứng dụng lên Store
Apple là một người gác cổng cho nền tảng iOS. Để đưa ứng dụng của bạn lên kho ứng dụng, bạn cần phải vượt qua một số yêu cầu bắt buộc. Đầu tiên bạn cần phải ghi danh vào mục iOS Developer Program. Điều này đi kèm với khoản phí hàng năm là $99 đô-la, và phải được thanh toán, cho dù ứng dụng của bạn là miễn phí hay không.
Đáng chú ý là Apple rất nghiêm ngặt về những gì họ cho phép trên kho ứng dụng của họ, chứ không giống như Google Play. Kết quả là, nếu ứng dụng của bạn có nội dung liên quan đến tình dục, vi phạm bản quyền, hoặc có khả năng gây tổn hại cho người dùng, thì nó sẽ bị từ chối.
Hãy chắc chắn rằng bạn đã đọc kỹ các hướng dẫn của App Store trước khi quyết định submit ứng dụng của bạn, vì mỗi quá trình xem xét sẽ ngốn mất thời gian trong việc dành để quảng bá và cải tiến ứng dụng của bạn.
Quảng bá
Bước cuối cùng trong vòng đời phát triển game là tiếp thị. Có hàng ngàn ứng dụng và game trên App Store. Và nó gần như là không thể trở nên nổi bật chỉ nhờ các giá trị riêng trong trò chơi của bạn được.
Dĩ nhiên bạn có thể tự quảng bá cho trò game của mình. Điều này có thể thực hiện được thông qua các phương tiện truyền thông xã hội, và cũng có thể bằng cách liên hệ với những thành viên của các tờ báo công nghệ và game, nhờ họ xem xét và viết về ứng dụng của bạn. Vấn đề đó là, việc viết thư liên hệ với các nhà báo là cả một hình thức nghệ thuật và rất dễ phạm sai lầm.
Tôi không chỉ nói suông về vấn đề này. Đồng nghiệp của tôi, Justin Pot, đã viết một bài rất dài để nói về những sai lầm mà các công ty đã phạm phải khi họ quảng bá sản phẩm của mình, như có lần một writer tại MakeUseOf là Jessica Cam Wong cũng đã gặp phải.
Mỗi ngày tôi nhận được khoảng từ 3 đến 10 email, và những email mà làm tôi chú ý là những cái được viết một cách rõ ràng, không bị lỗi chính tả, và hầu hết là phải chân thành. Một khi bạn đã viết ra một kế hoạch quảng bá, bạn cần phải tìm một ai đó để quảng bá sản phẩm cho bạn. Có những dịch vụ tồn tại chỉ nhằm phục vụ cho mục đích này. Đáng chú ý nhất là press.farm, nơi bán địa chỉ email của 588 nhà báo với một khoản phí cố định là $9 đô-la. Điều đó nói lên rằng, bạn đang trả tiền cho một cái gì đó mà về cơ bản là miễn phí. Hầu hết các blog công nghệ đều hiển thị công khai địa chỉ email của các writer của họ. Ví dụ, bạn có thể tìm thấy các địa chỉ email liên quan đến MakeUseOf trên trang about của chúng tôi.
Nếu bạn muốn quảng cáo ứng dụng của mình, nhưng không đủ tự tin để tự làm nó, thì bạn có thể chuyển sang các dịch vụ của các công ty PR chuyên nghiệp.
Vì tò mò với những gì mà một công ty PR cung cấp cho một nhà phát triển ứng dụng, tôi đã nói chuyện với Ayelet Noff, nhà sáng lập và CEO của Blonde 2.0, chuyên tiếp thị về các startup công nghệ. Tôi đã rất tò mò về những gì một khách hàng có thể nhận được khi họ thuê một công ty chuyên về công nghệ để PR giúp, và mất bao nhiêu chi phí. Và đây là những gì mà cô ấy đã nói với tôi:
"PR gồm hai yếu tố: Kể chuyện và các mối quan hệ. Hãy chắc chắn rằng câu chuyện của bạn là đủ thú vị để thu hút được sự chú ý của các nhà báo bằng cách sử dụng các đặc điểm sản phẩm hấp dẫn nhất có thể. Sau đó xem xét các mối quan hệ bạn có với các phóng viên khác nhau để xem ai sẽ là người phù hợp nhất.
Lợi thế khi hợp tác với một công ty PR có uy tín đó là chúng tôi đã có những kết nối này rồi, và có những chuyên gia biết cách làm thế nào để kể câu chuyện theo một cách hấp dẫn nhất. Hầu hết các công ty PR trên cơ sở duy trì một mức chi phí từ $3.000-$15.000 đô-la/tháng. Mức phí của công ty Blonde 2.0 chúng tôi bắt đầu từ $5.000 đô-la."
Sáng tạo!
Có rất nhiều thứ cần phải học khi bạn tham gia vào công việc phát triển game trên iOS. Nếu bạn đang làm việc một mình, bạn sẽ nhận thấy mình cần phải trở thành một nhà thông thái thực sự.
Bạn không chỉ cần có một mức độ nhạy bén trong kinh doanh, bạn cũng sẽ cần một sự tinh tế trong thiết kế, một cặp mắt quan tâm đến từng chi tiết, và các kỹ năng công nghệ cần thiết để xây dựng ra sản phẩm. Tôi không thể làm được điều đó, còn bạn thì sao?
Nếu bạn có một ý tưởng tuyệt vời cho một trò game, và đang xây dựng nó, hoặc đã xây dựng xong, thì tôi cũng rất muốn nghe về nó. Bạn hãy để lại một vài dòng bình luận phía dưới và chúng ta sẽ trao đổi thêm nhé!
Bình luận