Làm thế nào để tôi có thể bắt đầu lập trình game?

Bài viết được dịch từ trang web Gamasutra

Lập trình game nên bắt đầu từ đâu?
Tôi nhớ khoảng 5 năm về trước, tôi có gửi một bức email cho một vị giáo sư ở trường đại học danh tiếng M.I.T sau khi nhìn thấy bà ấy trong một chương trình truyền hình đặc biệt nói về chủ đề Trí Tuệ Nhân Tạo (AI). Tôi đã dành hết tâm huyết vào bức email đó để nói về các lý thuyết của tôi về phát triển Trí Tuệ Nhân Tạo, như làm thế nào các máy tính có thể được lập trình để nhận ra các môi trường xung quanh, làm thế nào để những cảm xúc có thể được học thông qua trải nghiệm, v.v... Tôi đã dành ra 4 giờ đồng hồ để viết bức email đó bởi vì tôi cảm thấy có một sự kết nối với công việc của vị giáo sư này. Việc viết bức email đó rất thú vị bởi vì nó đề cập đến một vấn đề mà tôi rất quan tâm và muốn được tiếp cận và nói chuyện với ai đó về nó. Lúc đó tôi tràn trề hy vọng trong khi viết thư vì cứ nghĩ có thể sẽ được trả lời và sẽ có một ai đó để cùng nói chuyện về chủ đề này, và có thể giúp tôi tiến vào con đường tạo ra một chiếc máy Trí Tuệ Nhân Tạo tiên tiến. Buồn thay, tôi chẳng bao giờ nhận được phản hồi từ vị giáo sư nọ... và tôi thậm chí không biết liệu bà ấy đã đọc bức thư đó hay chưa.
Gần đây, nhờ bộ phim tài liệu Indie Game: The Movie đề cập đến trò chơi do tôi làm ra là Super Meat Boy, tôi thường nhận được một vài câu hỏi thông qua email/twitter mỗi ngày từ những người muốn được tư vấn. Hầu hết các email này đến từ những người hâm mộ trẻ tuổi và mong muốn nhận được lời khuyên về các vấn đề như "Tôi nên sử dụng ngôn ngữ lập trình nào?" hay "Làm thế nào để tôi có thể đưa được trò game của tôi lên Xbox". Tôi đã đọc tất cả các email nhưng không phải lúc nào tôi cũng trả lời, bởi vì việc đó sẽ chiếm mất một khoảng thời gian của tôi, chưa kể là có rất ít sự khác biệt về nội dung giữa các bức email đó.
Tôi thường cảm thấy khá tồi khi tôi không trả lời, bởi vì những người đó chỉ đang tìm cách tiếp cận và muốn một ai đó có thể làm sáng tỏ cho họ một số vấn đề trong phát triển game. Họ đang làm cái việc giống như tôi đã làm với vị giáo sư của trường đại học M.I.T nhiều năm về trước. Họ quan tâm đến những gì tôi làm và muốn biết làm thế nào để làm điều đó, họ muốn trở thành một phần của phát triển game theo một cách nào đó. Vâng, tôi rất muốn giúp nhưng không có đủ thời gian, kiến thức hoặc mong muốn trở thành một giáo viên... vì vậy ngày hôm nay tôi sẽ làm sáng tỏ ở đây. Bài viết này như một phần trả lời cho những câu hỏi thường gặp (FAQ) cho bất kỳ ai muốn một vài lời khuyên theo một cách nào đó từ tôi về cách làm game.

Tôi phải bắt đầu thực hiện trò game mơ ước của mình từ đâu?

Tôi phải bắt đầu thực hiện trò game mơ ước của mình từ đâu? 

"Tôi nên bắt đầu từ đâu?" là kiểu câu hỏi phổ biến nhất mà tôi nhận được. Tôi cảm thấy bước đầu tiên luôn là rào cản lớn nhất của rất nhiều người bởi vì họ không nhận ra rằng tất cả mọi thứ, thậm chí là trò game khùng khùng AAA ngoài kia, cũng đều bắt đầu từ chỗ không có gì và cứ được xây dựng dần cho tới khi nó trở thành như ngày nay. Khi trò game mơ ước của bạn đang ấp ủ trong đầu và bạn thực hiện bước đi đầu tiên để tạo ra nó, việc này có thể rất khó khăn khi chuyển từ trạng thái tưởng tượng thành hiện thực. Đối với những người chưa bao giờ làm một trò game, những thứ đơn giản như tạo ra một nhân vật có thể di chuyển là một điều gì đó không thể và có thể nhanh chóng làm nản chí họ. Bạn đừng thực hiện theo cách đó, chìa khóa ở đây là hãy bắt đầu nhỏ thôi.
Trò game Super Meat Boy bắt đầu chỉ là một hình vuông và hình của một gã mập Meat Boy trên nó. Trò Mew-Genics khời đầu chỉ là một hình vuông màu đen di chuyển tới lui trên màn hình. Trò Goo! bắt đầu chỉ là các hình tròn với các khuôn mặt cười trên chúng. Trò “Game 2” bắt đầu là một hình ảnh vector của nhân vật trong "Game 2". Mọi thứ đều bắt đầu ở cấp độ cơ bản nhất và phát triển từ đó mà lên.
Một điều rất quan trọng khi làm game đó là chỉ bước một bước tại một thời điểm. Nếu bạn lao vào làm trò game mơ ước của mình với tất cả chức năng cùng một lúc, rất có thể bạn sẽ cảm thấy nản lòng và bị choáng ngợp. Nếu bạn xây dựng cũng trò game mơ ước đó chỉ một bước nhỏ ở mỗi thời điểm, bạn sẽ có cơ hội nhận ra tầm nhìn của mình sẽ phát triển theo cấp số nhân.
Chia trò game của bạn thành những phần nhỏ buộc bạn phải phân tích và ước lượng các ý tưởng của mình ở một mức sâu hơn. Điều này là cần thiết bởi vì bạn luôn luôn muốn cởi mở để thay đổi, bạn chẳng bao giờ muốn đặt mình vào một con đường mà bạn cảm thấy không thể nào đi chệch khỏi. Việc chệch khỏi kế hoạch ban đầu có thể mang lại nhiều phần thú vị nhất của một trò game. Nó là một cách để phát triển bởi vì bạn đang suy nghĩ trong một hệ thống game và đang áp dụng những ý tưởng mới tới những ý tưởng đã được hình thành.
Vì vậy, hãy cố gắng phân rã các ý tưởng của bạn thành những phần nhỏ có thể thực hiện được một cách dễ dàng trong tập kỹ năng hiện tại của bạn. Nó sẽ dễ dàng hơn để quan sát tiến độ theo cách đó, bạn sẽ không cảm thấy nản lòng một cách dễ dàng, và bạn có thể quay lại công việc của mình sau đó và dễ dàng tiếp tục công việc đang làm dở dang. Nên nhớ rằng không có giới hạn về mặt thời gian khi bạn phải cho ra lò trò game của mình (nếu bạn đang bắt đầu giống như vậy, thì có nghĩa là bạn đang ở trong một khoảng thời gian khó khăn). Học được bài học qua mỗi bước đi và xây dựng các dự án của bạn giống như là bạn đang chơi trò xếp hình Lego vậy... ghép một mẩu ở một thời điểm.
Để cung cấp một ví dụ chi tiết hơn, cho phép tôi kể về cách tôi đã xây dựng trò game Super Meat Boy như thế nào. Lúc đầu tôi chỉ có một hình chữ nhật với hình ảnh một gã mập Meat Boy trên đó, tôi tập trung vào việc làm sao để có thể điều khiển nó di chuyển tiến và lùi. Sau khi tôi đã chơi với nó một chút thì tôi làm thêm tính năng là khi tôi nhấn một nút trên bàn phím thì gã Meat Boy sẽ nhảy lên, sau đó tôi làm cho gã dừng lại khi hắn đã tiếp đất, tiếp đó tôi làm tính năng dừng hắn lại khi chạm vào tường, sau đó tôi làm cho hắn dính vào tường, và khi mà hắn ta mắc kẹt vào bức tường thì tôi nhấn vào một button để hắn nhảy qua bức tường đó, sau đó nếu anh ta chạm phải một hình vuông màu xanh thì sẽ chết và cứ tiếp tục như vậy cho tới dòng cuối cùng trong kịch bản game và trò game Super Meat Boy đã hoàn thành theo cách đó. 
Không có tác vụ nào quá nhỏ, không có số lượng tiến độ nào là quá ít. Điều quan trọng là bạn không cảm thấy nản lòng và bạn tiếp tục phát triển trò game của mình.

Tôi nên sử dụng ngôn ngữ lập trình nào?

Tôi nên sử dụng ngôn ngữ lập trình nào?

Đây là một câu hỏi phổ biến thứ hai mà tôi thường nhận được và phải thành thật mà nói là tôi không thích câu hỏi này bởi vì nó là một câu hỏi mà tôi không thể trả lời. Tôi luôn cố gắng trả lời câu hỏi đó là "bất cứ ngôn ngữ nào mà bạn cảm thấy phù hợp nhất". Tôi không nghĩ rằng đây là câu trả lời hiệu quả cho các câu hỏi của mọi người bởi vì tôi cảm thấy mọi người đang tìm kiếm một câu trả lời nhất định hoặc họ chỉ vừa mới bắt đầu và không cảm thấy thoải mái với bất kỳ ngôn ngữ lập trình nào cả. Tôi sẽ cố gắng giải thích về câu trả lời của mình để có thể giúp đỡ người khác hiểu cách làm thế nào lựa chọn một ngôn ngữ tốt nhất cho họ hoặc giúp họ hiểu rằng việc sử dụng cái mà họ cảm thấy thoải mái là cách tốt nhất để bắt đầu.
Nếu bạn đang tìm kiếm lời khuyên về việc nên bắt đầu bằng ngôn ngữ lập trình nào, thì bạn không cần bận tâm về những vấn đề kiểu như "Liệu Flash có chạy trên iOS?" hoặc "Xbox có chạy Java không?" hoặc "Liệu XNA có chạy trên Mac?". Lúc này bạn nên quan tâm đến việc làm thế nào để thực hiện một trò game, chứ không phải là cách để phát hành nó hoặc bán nó. Những câu hỏi này chỉ quan trọng khi bạn đang lo lắng về việc phát hành một trò game, nhưng việc phát hành một trò game là cách dễ hơn nhiều so với việc thực hiện nó. Bạn có thể lo lắng về việc phát hành trò game của bạn vào lúc khác.
Tìm một ngôn ngữ và bạn nhấp chuột vào rồi bắt đầu viết code. Điều quan trọng lúc ban đầu là nó phải mang lại nhiều sự hài lòng nhất có thể. Bạn muốn có một cái gì đó hiện lên màn hình nhanh chóng và xây dựng từ đó. Bạn muốn có khả năng chỉnh sửa cái mà bạn đã tạo ra và thêm vào nó một cách dễ dàng. Sự hài lòng tức thời là chìa khóa để luôn duy trì động lực khi mới bắt đầu, bạn có thể không muốn học một ngôn ngữ mới trong khi đang tạo ra trò game của mình. Nếu bạn cố gắng học một ngôn ngữ lập trình mới trong khi đang tạo ra trò game của bạn, thì rất có thể bạn sẽ dành ra nhiều tuần để đọc và không có thứ gì để trình diễn ra, ngoại trừ kiến thức mà bạn vẫn chưa có khả năng áp dụng vào trò game của mình. Điều đó có thể tạo ra sự chán nản.
Gắn chặt với cái bạn biết, hoặc đi theo hướng thoải mái và dễ dàng nhất có thể nhằm thu được các kỹ năng cần thiết để bắt đầu làm việc trên trò game của bạn. Vì vậy nếu bạn biết một chút Flash thì sử dụng Flash, nếu bạn sử dụng C++ thì hãy viết game bằng C++, nếu bạn chỉ biết sử dụng Java thì hãy dùng Java. Không có cái gì gọi là "ngôn ngữ phát triển game chính thống" cả. LUÔN LUÔN nhớ lấy điều đó. Trò game Minecraft được viết bằng Java, Super Meat Boy được viết bằng C++, Farmville được viết bằng Flash, một số trò game nổi tiếng khác mà mọi người đang chơi được viết bằng HTML5, một số trò khác được làm trên Index cards. Quan điểm ở đây là: công cụ nào không quan trọng. Hãy tìm một cách bạn cảm thấy thoải mái để làm game, và bắt tay vào làm bằng ngôn ngữ và công cụ đó.
Đừng cho rằng tôi đang làm nản lòng bạn trong việc học thêm những ngôn ngữ lập trình mới và làm việc ra bên ngoài vùng thoải mái của bạn (comfort zone). Một khi trái bóng đã lăn, bạn sẽ muốn vươn ra ngoài vùng thoải mái của bạn và học thêm những điều mới nếu bạn muốn phát triển trở thành một nhà phát triển game chuyên nghiệp. Nhưng hãy tạm gác lại vấn đề đó, trong lúc này bạn nên thiết lập các công cụ cần thiết và bắt tay vào code ngay.
Nếu bạn không biết bất kỳ ngôn ngữ nào và đang tìm kiếm một nơi để bắt đầu, thì tôi đề xuất bạn sử dụng Flash, Game Maker, Unity hoặc một công cụ tương tự. Tất cả những chương trình này giúp bạn dễ dàng tạo ra một cái gì đó hiển thị lên màn hình một cách nhanh chóng mà không cần phải học quá nhiều. Bạn sẽ không muốn bắt đầu bằng ngôn ngữ như C++ nếu bạn chưa có kinh nghiệm với bất cứ ngôn ngữ lập trình nào khác và đang lo lắng để tạo ra trò game của mình.

Những cuốn sách và tutorial nào mà tôi nên đọc?

Những cuốn sách và tutorial nào mà tôi nên đọc?

Có 2 cuốn sách mà tôi đề xuất bạn nên đọc, nhưng chúng chỉ dành cho phát triển game bằng C++ và chúng cũng không phải là sách dành cho người mới bắt đầu. Đó là 2 cuốn Effective C++ và More Effective C++. Đây là những cuốn sách khá nâng cao về C++, vì vậy nếu bạn không biết C++ thì đừng thốt lên rằng "Ồ, tôi phải học những thứ này mới làm được game ư?". Bạn đừng như vậy.
Ngoài 2 cuốn sách đó, tôi chưa từng đọc bất kỳ cuốn sách nào khác về phát triển game. Tôi thường học bằng cách đọc các tài liệu SDK. Đó không phải là cách điển hình lắm, nhưng là cách mà tôi đã học.
Tôi cũng đề xuất bạn nên tìm các khóa học và các tutorial trực tuyến. Trên internet đầy rẫy những chương trình ví dụ, nhưng tutorial kiểu như NeHe, v.v... Tôi không đề xuất một tutorial nào cả, lý do chính là bởi vì tôi chưa từng xem qua bất kỳ tutorial nào, nhưng tôi biết các nguồn tài nguyên trực tuyến rất phong phú và đa dạng. Tôi chắc rằng với một chút trợ giúp từ Google thì bạn có thể tìm thấy chính xác cái bạn cần.
Tôi KHÔNG khuyến khích bạn copy và past các đoạn code từ các tutorial để làm trò game của mình. Bạn sẽ không học được điều gì cả nếu làm theo cách đó, bạn chỉ là tay chuyên đi copy mà thôi. Điều đó thường đi đôi với các chương trình mã nguồn mở. Chúng trông rất tốt khi xem xét, học tập và tham khảo, nhưng chúng không đồng nghĩa với việc bạn đang tự làm trò game của riêng mình. Bạn sẽ không thể trở thành một lập trình viên giỏi bằng cách đi copy và past mã nguồn vào trong trò game của bạn, trừ khi bạn hoàn toàn hiểu nó. Đừng tự dối lừa bản thân mình theo cách này, hãy dành thêm thời gian để hiểu một cái gì đó trước khi sử dụng nó.

Bạn đã sử dụng phần mềm nào để tạo ra trò game đó?

Bạn đã sử dụng phần mềm nào để tạo ra trò game đó?

Tôi cảm thấy khi câu hỏi này được hỏi, thì nó được xuất phát từ những người cho rằng có một công cụ thần kỳ nào đó để làm các trò game cho bạn. Thực tế cũng có những công cụ có thể làm được rất nhiều việc cho bạn. Nếu bạn không cảm thấy thích thú trong việc học một ngôn ngữ lập trình cho mục đích xây dựng một game engine, thì hãy tìm kiếm những công cụ như Unity hoặc UDK. Chúng sẽ giải phóng gánh nặng cho bạn và cho phép bạn chỉ việc tạo ra game. Nhưng cũng có cái giá phải trả khi bạn sử dụng những công cụ này. Bạn sẽ bị giới hạn bởi hệ thống cung cấp cho bạn những công cụ đó. Những công cụ này đầy đủ các đặc trưng được xây dựng sẵn, ổn định, và đáng kinh ngạc, nhưng đôi khi chúng sẽ không thể làm điều mà bạn muốn.
Về mặt cá nhân tôi không thích những giới hạn và tôi thực sự thích thú khi có thể tự do làm điều mình thích trong phát triển game, vì vậy tôi tránh sử dụng những công cụ này và xây dựng các trò game của tôi từ code mà tôi đã viết trong nhiều năm qua. Điều đó không nói rằng một trò game như Super Meat Boy không thể tồn tại trong một công cụ giống như Unity. Nó có thể hoàn thành đến một mức độ nào đó. Do bởi những giới hạn nên nó sẽ không tạo ra được trò game chính xác như vậy, nó sẽ không có giao diện và kiểu điều khiển giống hệt. Những trò game tuyệt vời có thể được tạo ra bởi các công cụ như UDK, Unity... và những trò game tuyệt vời cũng được tạo ra mà không cần có chúng.
Tôi sử dụng Visual Studio cho việc phát triển, nhưng tôi có thể dễ dàng sử dụng Eclipse, Code Warrior, XCode, hoặc Notepad và một trình biên dịch. Cũng giống như việc chọn một ngôn ngữ lập trình, không quan trọng việc bạn sử dụng cái nào. Visual Studio là cái mà tôi đã sử dụng. Tôi không sử dụng bất kỳ chức năng cao siêu gì được tích hợp trong nó cả, tôi sử dụng nó như một cách để tổ chức các file mã nguồn của mình, biên dịch và debug. Có hàng tấn các trình soạn thảo ở ngoài kia có thể làm được việc này.
Đối với phần đồ họa và các hiệu ứng động, cộng sự của tôi là Ed sử dụng Flash. Tôi đã viết một công cụ để xuất những hiệu ứng động trong Flash bởi vì nó dễ hơn là viết ra các công cụ cho Edmund, và... hơn nữa... Edmund rất thoải mái khi sử dụng Flash. Việc viết công cụ đó đồng nghĩa với việc phải học JSFL và làm việc trong Flash, nhưng nó cũng mang lại hiệu quả tốt nhất cho Ed, tôi và cho cả Super Meat Boy. Bạn không cần công cụ xuất hiệu ứng động của tôi để làm trò game của mình. Một ngày đẹp trời nào đó tôi sẽ cung cấp những công cụ này miễn phí đến các lập trình viên, nhưng điều này không xảy ra trong thời gian gần, vì vậy bạn đừng chờ đợi.

Làm thế nào mà bạn luôn có động lực để hoàn thành công việc bạn đã bắt đầu?

Làm thế nào mà bạn luôn có động lực để hoàn thành công việc bạn đã bắt đầu?

Không có bí mật nào trong việc duy trì động lực và đây không thực sự là một lời khuyên tôi dành cho bạn để bạn có động lực trong dự án của mình. Tôi đã không sử dụng bí quyết đặc biệt nào, hoặc tư duy, hoặc danh sách tổ chức công việc, hoặc bất kỳ điều gì giống vậy. Để tôi có thể luôn có động lực, tôi có niềm tin và thích thú trong dự án mà mình đang làm. Nếu tôi không thích việc mà tôi đang làm, thì có lẽ là tôi sẽ không thể hoàn thành nó.
Ví dụ, một trò game mà tôi đã bắt đầu làm nhiều năm về trước có tên là Goo!. Tôi đã làm việc trên nó trong vòng 2 năm, và nó chẳng đi đến đâu cả. Nó không phải là ý tưởng của tôi, nó không phải là một trò game mà cá nhân tôi muốn làm, và bởi vì điều đó nên tôi có thể chẳng bao giờ tạo ra nó theo cách mà tôi muốn. Tôi đã dừng việc phát triển nó để bắt đầu trò game Super Meat Boy.
Quãng thời gian xây dựng trò Goo! đó không hề lãng phí bởi vì tôi đã học được rất nhiều về phát triển game, nhưng trò game đó đã chẳng bao giờ hoàn thành bởi vì nó không phải là cái gì đó tạo ra sự hào hứng trong tôi. Khía cạnh duy nhất trong trò game đó khiến tôi phấn khích là phần multi-threaded physics engine và tôi đã dành phần lớn thời gian của mình trên đó. Nó rất quan trọng đối với tôi khi làm việc trên trò game đó, bởi vì nó khiến tôi nhận ra rằng việc yêu quý trò game mà mình đang tạo ra khiến cho công việc trở nên dễ dàng hơn nhiều. Đó là động lực quan trọng nhất.
Khi bạn tin và yêu cái mà bạn đang làm việc trên đó, thì rất khó có gì có thể dừng bạn lại. Bạn có nỗi ám ảnh về nó, bạn muốn bổ sung thêm tính năng cho nó, bạn muốn làm nó trở nên tốt hơn, và bạn thực sự muốn nhìn thấy nó hoàn thành. Việc tin vào cái mà bạn đang làm việc có khuynh hướng giúp bạn hoàn thành trò game. Bạn càng muốn dành nhiều thời gian để đánh bóng nó, bổ sung thêm các đặc trưng bạn nghĩ rằng sẽ làm trò game trở nên tốt hơn, nói chung là đi xa hơn là chỉ đơn thuần làm trò game của bạn.

Làm thế nào để tôi có thể đưa trò game của tôi lên Steam/Xbox/PS3/WiiU/Anything hay bất cứ nơi nào khác?

Làm thế nào để tôi có thể đưa trò game của tôi lên Steam/Xbox/PS3/WiiU/Anything hay bất cứ nơi nào khác?

Đây là một câu hỏi mà không ai đặt ra khi họ vừa mới bắt đầu hoặc thậm chí nếu họ có một trò game đang xây dựng. Câu khẩu hiệu của bạn nên là "Tôi sẽ làm một trò game hay" chứ không phải "Tôi cần đưa nó lên XBLA". Con đường để đưa các trò game của bạn tới bất kỳ nền tảng nào là một kiến thức công khai. Không có một email bí mật nào, không có một form ma thuật nào mà bạn cần điền vào, bạn không cần phải có mối quen biết bất kỳ ai ở đó, không có chị em họ của ai đó làm việc ở những tổ chức này và hẹn gặp bạn một cách bí mật, không có thứ gì giống như vậy tồn tại ở đây cả.
Nó rất đơn giản để được chấp nhận cho bất kỳ những nền tảng nào: tất cả bạn cần là một trò game tốt. Tất cả chỉ có vậy. Đó là một thực tế khắc nghiệt mà một số người từ chối tin vào. Tôi đã nhìn thấy một số người giơ đầu chịu báng mọi thứ cho trò game của họ khi nó được chấp nhận bởi Steam/XBLA... hoặc các nền tảng khác. Một trò game hay sẽ thu được sự chú ý và quan tâm nghiêm túc từ những người nắm giữ các platform dựa trên giá trị riêng của nó với một chút giúp đỡ từ bạn. Hãy nói về trò game của bạn, hãy hào hứng về nó, nếu trò game của bạn tốt và những người khác thích nó cũng như sự hăng hái của bạn thì nó sẽ được lan tỏa sang những người khác.
Nếu trò game của bạn không tốt, bạn sẽ có một khoảng thời gian khó khăn để có thể đưa nó lên các nền tảng phân phối. Hãy tập trung vào việc làm cho trò game của bạn trở nên tốt nhất có thể, đừng tập trung vào những nền tảng nào mà bạn có thể đưa nó lên. Một trò game tốt thì tự quảng bá bản thân nó tốt hơn là việc phơi nó ra trên một nền tảng nào đó.

Điều gì sẽ xảy ra nếu tôi hoàn thành trò game của mình mà không một ai muốn chơi nó cả?

Điều gì sẽ xảy ra nếu tôi hoàn thành trò game của mình mà không một ai muốn chơi nó cả?

Nếu bạn đã làm việc vất vả, và bạn nghĩ rằng trò game của mình là thứ tuyệt vời nhất và bạn vẫn không thể đưa nó lên bất kỳ một nền tảng phân phối nào, thì hãy đừng xem đó là một thất bại và không phải là một tín hiệu bạn nên dừng việc làm ra các trò video game. Rất ít người thành công với trò game đầu tay của họ. Trò game SMB là trò game đầu tiên mà tôi từng hoàn thành, nhưng có một số trò tôi làm trước trò SMB đã chẳng đi đến đâu cả.
Có thời điểm tôi chỉ còn vài bước nữa là nhận được một thỏa thuận với hãng Sony giống hệt như các trò fl0w và Everyday Shooter cho trò game Goo! mà tôi đã đề cập ở trên. Có một sự thay đổi trong quản lý ở phút cuối (chỉ 2 ngày trước khi hợp đồng cuối cùng được ký) là nguyên nhân trò game đó bị hủy bỏ và tôi chẳng bao giờ nghe thông tin từ hãng Sony nữa. Trò game đó không được tốt và thậm chí nếu có được thỏa thuận với hãng Sony thì nó có lẽ cũng chẳng được hoàn thành và sẽ trở thành một thất bại to lớn. Đó là một nỗi đau, đầy chua xót, nhưng nó đã không thể dừng tôi lại.
Đừng để điều đó kéo lùi bạn hoặc giết chết giấc mơ của bạn. Người ta có thể nghĩ "đứa con" của bạn rất xấu xí... nhưng điều đó cũng tốt thôi. Hãy tiếp tục làm game. Hãy lấy những thất bại đó làm nguồn cảm hứng và một ngày nào đó bạn sẽ có đủ sức mạnh để vượt qua nó, rất có thể bạn sẽ nhận ra giấc mơ của mình.

Lập trình game mơ ước

Kết luận

Hãy làm trò game của bạn với bất cứ cái gì mà bạn có thể, bắt đầu nhỏ thôi và đừng lo lắng về những thứ lặt vặt sau này. Các ngôn ngữ lập trình và phần mềm thì chẳng liên quan lắm đến việc tạo một trò game, vì vậy hãy lựa chọn cái mà bạn cảm thấy thoải mái hoặc bạn muốn học nhưng đừng ôm đồm quá nhiều khi bạn mới bắt đầu. Hãy chắc chắn rằng bạn tạo ra một tiến độ đủ để luôn có động lực và xua tan đi sự nản lòng. Hãy yêu quý trò game của bạn, nói chuyện về nó, có một nỗi ám ảnh về nó và bạn sẽ không cảm thấy vất vả khi làm việc trên nó.
Về tác giả bài viết:
Tommy RefenesTommy Refenes là một lập trình viên và một video game designer người Mỹ, được biết đến với vài trò là tác giả của trò game nổi tiếng Super Meat Boy, một nền tảng mà anh đã cùng tạo ra với cộng sự Edmund McMillen. Refenes bắt đầu lập trình từ lúc 11 tuổi, và đã làm việc như một chuyên gia vào lúc 18 tuổi. Anh từng bỏ dở việc học đại học tại trường North Carolina State University, và sau đó có một phát biểu nổi tiếng rằng "nếu bạn muốn trở thành một lập trình viên, thì đừng có đi học đại học". Hiện tại anh đang là CEO của công ty Team Meat. Bạn có thể liên hệ với anh qua Twitter

Nhận xét